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 #文件及文件家都是mysql2.权限表现方法 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 denied3.修改文件权限 命令: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
[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