04-用户和组


[root@localhost data]# useradd -G bin,root -s /bin/csh -c "Gentoo Distribution" gentoo
[root@localhost data]# id gentoo
uid=1008(gentoo) gid=1008(gentoo) groups=1008(gentoo),1(bin),0(root)

 无执行权限进不去目录,部署docker mysql nginx等要注意

[wang@localhost /]$ cd data/
bash: cd: data/: Permission denied
[root@localhost ~]# whatis passwd
openssl-passwd (1ssl) - compute password hashes
passwd (1)           - update user's authentication tokens
passwd (5)           - password file
[root@localhost ~]# man 5 passwd
[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin #不允许登录
wang:x:1000:1000:wang:/home/wang:/bin/bash #允许登录
name passwd UID GID 描述 家目录 shell类型
-s: shell类型 用户shell类型为 /bin/bsh 系统用户一般shell类型为:/sbin/nolongin
/bin/false
-d:指定目录
-u:指定uid号
-r:默认为系统账号
-M:不创建家目录
-g:给用户指定一个组
-c:用户注释信息

 useradd -M -s /sbin/nologin mysql  #没有家目录,不可登录

[root@localhost ~]# su - mysql 
su: warning: cannot change directory to /home/mysql: No such file or directory
This account is currently not available.

[root@localhost ~]#  useradd -M -s /bin/bash mysql2  #没有家目录,可以登录
[root@localhost ~]# su - mysql2
su: warning: cannot change directory to /home/mysql2: No such file or directory
[mysql2@localhost /]$ pwd  #可以ssh登录
/

[root@localhost ~]#  useradd -s /bin/bash mysql3 #可以登录,默认有家目录
[root@localhost ~]# su - mysql3
[mysql3@localhost ~]$ pwd
/home/mysql3
[mysql3@localhost ~]$ ls -a
.  ..  .bash_history  .bash_logout  .bash_profile  .bashrc  .cache  .mozilla

  [mysql3@localhost ~]$ cat aa  #家目录下可以创建文件
   aaaa

 只对自己的家目录有操作权限

[mysql3@localhost home]$ ll /home/
total 0
drwx------  4 mysql3 mysql3  mysql3
drwx------. 4 wang   wang     wang
[mysql3@localhost home]$ ll /home/wang/
ls: cannot open directory '/home/wang/': Permission denied
[mysql3@localhost home]$ ll /home/mysql3/
total 4
-rw-rw-r-- 1 mysql3 mysql3 5  aa
[mysql3@localhost home]$ 
[mysql3@localhost home]$ ll /home/wang
ls: cannot open directory '/home/wang': Permission denied

user 文件

 hash 512不可逆

[root@localhost ~]# cat /etc/shadow
root:!$6$GuXYkkXUI59mp6Md$4fycaS6olcfwfCkYx6EqI0Nv3OXK7.fTDqBfUb4bRbo8pfVZXrFXPwdhBnRIcNuugjQd8a0CB4jYG4nrKdZoI/::0:99999:7:::
禁止登录
[root@localhost ~]# cat /etc/shadow                                                                                    过期时间273年 提前7天提醒
root:$6$9N4CMXhTVmnPIrJL$S4r.J6ZHv2Wz6Bk3.lQ3dX2Vo8tuUWVr/RjvCzdgZdHnTG7vKm75O6FaQdVl7Z8N0UmYePr5kv96.ck/VTxND/:19080:0:99999:7:::
                                                           更改密码距1970年 root 0随时能改密码

 组文件,配置文件

cat /etc/group
wang:x:1000:
mysql:x:1001:
mysql2:x:1002:
mysql3:x:1003:
[root@localhost ~]# id wang
uid=1000(wang) gid=1000(wang) groups=1000(wang)
[root@localhost ~]# cat /etc/gshadow
root:::
-r:系统用户默认不能登录 -g:组id号
[root@Rocky8 ~]#groupadd mysql -r -g 3306
[root@Rocky8 ~]#getent group mysql 
mysql:x:3306:

 修改uid

[root@localhost ~]# usermod -u 1005 mysql #改user id
[root@localhost ~]# id mysql
uid=1005(mysql) gid=1001(mysql) groups=1001(mysql)

[root@localhost ~]# groupadd mysql4 -r -g 3306

[root@localhost ~]# usermod -g mysql4 mysql 修改所属组
[root@localhost ~]# id mysql
uid=1005(mysql) gid=3306(mysql4) groups=3306(mysql4)
chgrp chuan dir/ #更改目录所属组

 usermod修改主组名 id号

[root@localhost ~]# usermod -g mysql2 mysql3
[root@localhost ~]# id mysql3
uid=1003(mysql3) gid=1002(mysql2) groups=1002(mysql2)
[root@localhost ~]# groupmod -g 1234 mysql4
[root@localhost ~]# id mysql
uid=1005(mysql) gid=1234(mysql4) groups=1234(mysql4)

useradd -G 添加附加组

[root@localhost ~]# useradd -M -s /sbin/nologin -G mysql2 mysql3 
[root@localhost ~]# id mysql3
uid=1003(mysql3) gid=1003(mysql3) groups=1003(mysql3),1002(mysql2)

usermod去除附加组

[root@localhost ~]# usermod -G "" mysql3
[root@localhost ~]# id mysql3
uid=1003(mysql3) gid=1003(mysql3) groups=1003(mysql3)

 切换用户

su - user [完全切换]
su[空格]user [不完全切换]
su -[空格]user -c '[cmd]'

修改密码

#非交互式修改密码
[root@Rocky8 ~]#echo -e '000000\n000000' | passwd 
[root@Rocky8 ~]#echo 'weize822' | passwd --stdin root  #通过管道符传递密码
passwd --stdin root <<<123 #输入重定向,ubuntu不支持
查看创建用户属性信息
[root@localhost ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
文件权限 1.修改文件所属权限
-R:表示递归
chown [所属用户]:[所属组]
[chuan@localhost ~]$ ll /home/
total 0
drwx------  4 chuan chuan 14:23 chuan
[root@localhost data]# chown -R  mysql. mysql  #文件及文件家都是mysql
2.权限表现方法 owner 属主,u 4 group 属组,g 2 other 其他, o 1 每个文件针对每类访问者都定义了三种常用权限  
------ 不能够看,不能执行,不能删除,不能写入文件 root有权限
r       能看文件cat 不能删除、写入文件
w 能写,不能删除、写入文件
x 不能删除文件
rw     能看文件cat,能写文件vim,不能删除
r-x 能看到文件夹下面的文件,但是能访问文件的内容,不能删除文件
rwx 都能执行
  每个文件夹针对每类访问者都定义了三种权限
------ 不能看、读、写、执行
r   能看到文件夹下面的文件,但是不能看到文件的内容
r-x 能看到文件夹下面的文件,但是能访问文件的内容,不能删除文件
rwx 都能执行
[root@localhost data]# ll
total 0t
d-wx--x-wx 2 root root 19  dir
[chuan@localhost data]$ rm -rf dir/file1
[chuan@localhost data]$ rm -rf dir
rm: cannot remove 'dir': Permission denied
3.修改文件权限 命令:chmod 一般文件权限为 : -rw-r--r-- 644 一般文件夹权限:  -drwx-r-x-r-x 755
[chuan@localhost /]$ rm -f aa.txt 
rm: cannot remove 'aa.txt': Permission denied
[chuan@localhost /]$ echo bbb > aa.txt
-bash: aa.txt: Permission denied
一、权限管理 1.umask权限设置值 默认情况下,新创建文件的权限是655(rwx-r-x-r-x),目录权限是755(rwx-r-w-r-w) 新创建的文件默认权限:666-umask,如果所得结果有奇数需要+1,偶数不变 新创建的文件夹默认权限:777-umask

[root@localhost data]# umask
0022

[chuan@localhost ~]$ umask
0002 

文件的执行是危险的!但是目录的执行权限是常规的 1 如果没有执行权限,root也无法直接执行 2 基于安全考虑,默认新建的文件不允许有执行权限!(这是为什么奇数要加1的原因) root 默为umask为022,其它用户默认为002 umask越大意味着什么?权限就越小,意味着越安全! 为什么root的umask要大一些? 相对root的文件更重要,所以权限要越小一些
[chuan@localhost ~]$ umask 0000
-rw-rw-rw- 1 root root 0  bb.txt
source /etc/profile 永久生效
umask 0000
保存umask值 
全局配置: /etc/bashrc /etc/profile
用户配置: /home/.bashrc  #每个用户改自己的
[wang@localhost ~]$ ll
total 0
-rw-rw-rw- 1 wang wang 0 Mar 29  chuan1
二、特殊权限,suid、sgid、sticky 1.suid 此权限作用于二进制可执行文件上,作用于所属者上 例:
[root@localhost ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 33544  /usr/bin/passwd
chmod u+s /usr/bin/cat
[wang@localhost ~]$ cat /etc/shadow #任何用户都可以看
chmod 755 /usr/bin/cat  删除权限
[root@localhost ~]# chmod 6755 /usr/bin/cat
[root@localhost ~]# ll /usr/bin/cat
-rwsr-sr-x. 1 root root 38528  /usr/bin/cat
# chmod u-s file 取消权限 2.sgid 默认情况下作用于组,用户创建文件时,其附属组为此组属的主组,一旦设置了sgid,则对该目录有写 权限的用户在此目录中创建的文件所属组为此目录的属组,通常用于创建一个协作目录 1.3sgid权限表示方法 1.2.2表示方法 chmod g+s fiel   3.sticky位   具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权在目录设置 Sticky位,只有文件的所有者或root可以删除该文件sticky设置在文件上无意义
chmod 1777 /tmp
chmod o+t dir
chmod o-t dir
第三种特殊权限位称为 stick 位。这种权限只在目录文件夹中生效,默认情况下只要用户对目录 有写和执行权限,就可以删除目录中的文件,并不受到该文件的权限限制。当一个目录设置了 stick 特殊权限后,这种操作将受到限制,此时用户只能删除该目录中属主为自己的文件,其他文件无 3.1sticky权限表示方法    案例:用户共享文件,各自创建的文件各个用户都能修改,但是不能修改文件,用户所创建的文件属于这个共享文件夹组
[wang@localhost tmp]$ cat aa
aaaaaaaaa
[wang@localhost tmp]$ rm -f aa
rm: cannot remove 'aa': Operation not permitted
 
SRE