用户、组
多用户多任务的
linux管理模式私有模式:每一个用户对应一个和用户同名的组
公有模式
1.用户类别(65535个用户)
管理员:root UID=0
普通用户:redhat 1-65535
系统用户:系统安装自动创建 1-200 201-999
一般用户:手动添加 1000-60000
1.1创建用户
useradd用户名 /usr/sbin/usradd
1.2查看用户
grep’^用户名’ /ect/passwd
id 用户名
cat /etc/passwd 用户配置文件
root:x:0:0:root:/root:/bin/bash
用户名:密码占位符:UID:GID:描述信息,注释字段:家目录:SHELL(登录式shell,非登录式shell)
name:password:UID:GID:GECOS:directory:shell
1.3修改用户
usermod [option…] [选项参数] 用户名
#useradd user
#groupadd g1
-l 指定新的登录名 #usermod -l newuser user
-u 指定用户的UID #usermod -u 1111 newuser
-g 指定GID,修改用户的基本组 #usermod -g 1000 newuser
-G 指定附加组 #usermod -G g1 newuser
-c 注释 #usermod -c woshiuser newuser
-d 家目录 #usermod -d 家目录 newuser
-s 设置shell #usermod -s /sbin/nologin newuser
-L 锁定用户密码
-U 解锁用户密码
#usermod -l new1 -u 1234 -g 1000 -c newuser newuser
1.4删除用户
userdel -r 用户 删除用户以及创建用户相关的所有文件
注:也会删除用户的基本组,但是如果基本组中有其他用户,userdel -r删除不会删除基本组
[root@localhost ~]# useradd haha
[root@localhost ~]# tail /etc/group
rpcuser:x:29:
gdm:x:42:
gnome-initial-setup:x:975:
tcpdump:x:72:
sshd:x:74:
slocate:x:21:
jss:x:1000:
a:x:1001:
user:x:1002:
haha:x:1003:
[root@localhost ~]# userdel -r haha
[root@localhost ~]# tail /etc/group
colord:x:976:
rpcuser:x:29:
gdm:x:42:
gnome-initial-setup:x:975:
tcpdump:x:72:
sshd:x:74:
slocate:x:21:
jss:x:1000:
a:x:1001:
user:x:1002:
[root@localhost ~]# useradd xixi
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# usermod -G xixi user
[root@localhost ~]# tail /etc/group
rpcuser:x:29:
gdm:x:42:
gnome-initial-setup:x:975:
tcpdump:x:72:
sshd:x:74:
slocate:x:21:
jss:x:1000:
a:x:1001:
user:x:1002:
xixi:x:1003:user
[root@localhost ~]# userdel -r xixi
userdel: group xixi not removed because it has other members.
[root@localhost ~]# tail /etc/group
rpcuser:x:29:
gdm:x:42:
gnome-initial-setup:x:975:
tcpdump:x:72:
sshd:x:74:
slocate:x:21:
jss:x:1000:
a:x:1001:
user:x:1002:
xixi:x:1003:user
[root@localhost ~]# groupdel xixi
[root@localhost ~]# groupssel user
bash: groupssel: command not found...
[root@localhost ~]# groupdel user
groupdel: cannot remove the primary group of user 'user'
1.5用户设置/修改密码
passwd [用户名] password
passwd -d删除用户密码
-l 锁定用户密码
-u 解锁用户密码
管理员:可以指定用户名更改系统任意用户的密码不需要输入之前的密码,不严格匹配密码等级设置
普通用户:不可以指定用户名,只能更改自己的密码,需要输入之前的密码,严格匹配密码等级设置
echo mima | passwd --stdin 用户名
chpasswd一次性对多个用户密码进行更改
#cat users
#cat users | chpasswd
#echo redhat:123456 | chpasswd
1.6破解密码
关机-->开机-->鼠标进入启动界面-->第一个引导菜单-->e --->找到linux这一行在行尾添加rd.break
--->ctr1-x--->mount -o remount,rw /sysroot --->chroot /sysroot --
>passwd root-->设置密码--确认密码--->touch /.autorelabel -->exit --exit (等待)
2.组类别
管理组:root
普通组
系统组
一般组
主组,私有组,用户的默认组
附加组,额外组 用户默认组之外的组
2.2查看组
cat /etc/group 组配置文件
grep ‘^组名’ /etc/group
#man 5 group
redhat:x:1000:
组名:组密码占位符:GID组id:组中的用户名
2.3修改组信息
groupdel [option…] [选项参数] 组名
#groupadd grp2
-n 指定新组名 #groupmod -n g2 grp2
-g 指定GID #groupmod -g 2222 g2
2.4删除组
groupadd 组名
注:是能删除一个附加组,哪怕附加组中由用户也可以删除,但是不能删除一个基本组
2.5设置,修改组密码
gpasswd 组名
-a 将用户加入指定组 #gpasswd -a redhat g2
-d 将指定用户从组移除 #gpasswd -d redhat g2
-M 指定组成员列表 #gpasswd -M user1,user2 g2 #gpasswd -M haha,xixi g2
-A 指定组长 #gpasswd -A haha g2
-R 锁定组密码 #gpasswd -R g2
2.6登录新组
newgrp 组名 切换组身份信息
练习题
1.新建组shengchan caiwu jishu
2新建用户要求如下
*wjy是shengchan组的附加用户
*zxx是jishu组的附加用户
*新建admin用户,此用户不属于以上提到的三个部门,以上用户密码设置为redhat
#groupadd shengchan
#groupadd caiwu
#groupadd jishu
#useradd -G shengchan wjx
#useradd liuy
#usermod -G caiwu liuy
#useradd zxx
#gpasswd -a zxx jishu
#useradd admin
(1)passwd wjx
(2)echo redhat |passwd --stdin liuy
(3)echo zxx:redhat |chpasswd
(4)vim users
wjx:redhat
liuy:redhat
zxx:redhat
admin:redhat
#cat users | chpasswd
3实验
创建学习组1,学习组2;他们的组gid分别为1111,2222,添加成员并将uid为1088,和uid为1066的成员为两组的组长,其中一组组长有一个外号laoda
不同学习组成员进入其他组需要密码才能进入(设置密码);即使密码泄露也不希望组之外的成员进入
#groupadd std1
#groupaddd -g 1111std1
#groupadd -g 2222 std2
#useradd u1
#useradd u2
#usermod -u 1088 u1
#useradd -u 1066 ha1
#useradd ha2
用户加入组
#usermod -G std1 u1
#gpasswd -a u2 std1
#gpasswd -M ha1,ha2 std2
#gpasswd -A u1 std1
#gpasswd -A ha1 std2
#gpasswd std1
#gpasswd std2
#gpasswd -R std1
#gpasswd -R std2
不允许用户远程登陆
扩展
useradd haha /etc/passwd
/etc/group
/etc/shadow(密码配置文件)
/etc/gshadow(组配置文件)
/home/USERNAME
/var/spool/mail/USERNAME(-)
groupadd /etc/group /etc/gshadow
/etc/shadow用户密码文件
用户名:加密密码:最后一修改密码的天数(1970/1/1):密码生效最短时间:最长时间:警告时间
1.创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为"Gentoo Distribution"
useradd gentoo
gpasswd -a gentoo bin
gpasswd -a gentoo root
#usermod -s /bin/csh -c"Gentoo Distribution"gentoo
2.创建下面的用户/组.用户natasha,使用admins 作为附属,用户harry也使用admins 作为附属组,用户sarah不可交互登录系统,且不是admins 的成员,natasha,harry,sarah密码都是centos
5.查看UID、GID范围的配置文件,修改为501-60000。并查看密码加密算法
cat/etc/login.defs
6.查看创建用户时的模板配置文件
cat/etc/default/useradd
7.修改创建用户时的默认设置,家目录/www,默认shell 为/sbin/nologin
cat/etc/default/useradd
权限
1.linux中的权限在文件标识
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qqjx8cFD-1670468140847)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20221204141312504.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WOCmgJJ1-1670468140848)(file:///C:/Users/Administrator/Documents/WXWork/1688850714937101/Cache/Image/2022-12/image-20221203140008763.png)]
2.权限的描述形式
(1)支付形式r read w write x excute
rwx
111
2^2 2^1 2^0
(2)数值形式 r=4 w=2 x=1
-rw-------. 1 root root 1456 Nov 19 12:19 anaconda-ks.cfg 600
drwxr-xr-x. 2 root root 6 Nov 19 14:12 Desktop
3.权限字符的含义
文本文件:r 查看文件的内容 cat tac more less head tail grep vim
w 编辑文件内容 vim echo 123 > a.txt cat << EOF >FILE
x 执行文件中的内容(脚本)命令文件
目录文件:r 查看目录中的文件名 ls
w 在该目录下创建文件 touch mkdir cp mv > rm
x 执行权限用cd进入该目录 (r-x)(rwx)
4.权限的匹配规则
可执行文件(命令文件)进程的所属用户身份是用户发起者身份;
判断发起者身份是否是目标文件的所属用户,是,只匹配目标文件所属用户位的权限
不是,开始判断咱们发起者身份是否是目标文件所属组用户,是组用户,只匹配目标文件所属组的权限
不是,直接匹配目标文件其他用户位的权限。
5.修改权限
chmod 权限 FILE…
注:作为普通用户只能更改属于自己文件的权限。
u 所属用户位 g所属组 o其他用户(other) a 所有
chmod ugo=rwx file1 == chmod a=rwx file1 == chmod rwx file
chmod u=rw,g+r(加了一个读的权限),o-r(其他没有读的权限) file1 == chmod -x file
chmod 644 file2 rw-r--r--
chmod 006 file3
chmod u=6 file4 ----错误的
chown 更改文件的所属用户
chown 用户名 FILE
chown 用户名:组名 FILE
chown .组名 FILE
chgrp 更改文件的所属组
chgrp 组名 FILE
6.文件默认的权限值
文本文件最高的权限值:666
权限掩码(权限过滤值:022 #umask
文本文件默认的权限值:644
目录文件最高的权限值:777
目录文件默认的权限值:755
rw- rw- rw- 6 6 6
--- -wx -wx 0 3 3 055
rw- r- r-- 6 3 3 622 -----x 644
练习题3
拷贝文件/etc/fstab到/var/tmp/fstab
配置文件/var/tmp/fstab的权限
-
文件/var/tmp/fstab的拥有者是zhangsan文件/var/tmp/fstab属于zhangsan组
-
文件/var/tmp/fstab对任何用户不可执行
-
其他用户(当前和将来的)能对文件/var/tmp/fstab进行读操作
#cp /ect/fstab /var/tmp/fstab
#chown root:root /var/tmp/fstab
#chgrp zhangsan /var/tmp/fstab
#chmod a-x /var/tmp/fstab
#chmod o+r /var/tmp/fstab
7.特殊权限
u+s =4 suid 所属用户的一个禁锢位
仅对可执行文件(命令文件)设置有意义
可执行文件(命令文件)设置u+s权限,可执行文件的进程所属用户是可执行文件自身的用户:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wt5VutRM-1670468140849)(C:\Users\orangeio\AppData\Roaming\Typora\typora-user-images\image-20221204161422608.png)]
原因:通过普通用户执行passwd,passwd文件进程身份是root
设置情况:通过任意用户执行命令,通过root身份来执行就可以设置特殊权限u+s
g+s =2 sgid 所属组的一个禁锢位
对可执行文件设置有意义:(很少用)
可执行文件(命令文件)设置g+s权限,可执行文件的进程所属组;
(2)对目录文件设置有意义:
任意用户在该目录下创建的文件,文件的所属组都是目录的所属组
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f2HDjaGJ-1670468140849)(C:\Users\orangeio\AppData\Roaming\Typora\typora-user-images\image-20221204162636813.png)]
o+t =1 sticky 冒险位
仅对目录文件设置有意义:
目录文件设置o+t权限后,用户只能删除自己的文件不能删除别人的文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S87gbOsb-1670468140849)(C:\Users\orangeio\AppData\Roaming\Typora\typora-user-images\image-20221204163320420.png)]
8.扩展权限
./+
getfacl 查看文件的权限列表
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TMHD1Dhy-1670468140850)(C:\Users\orangeio\AppData\Roaming\Typora\typora-user-images\image-20221204164145391.png)]
setfacl 设置权限列表
setfacl -m u:用户名(UID):权限 file
setfacl -m g:组名 (GID):权限 file
-x 删除扩展权限列表
-b 清空扩展权限(扩展权限的表示符)
[root@www ~]# setfacl -x u:xixi: aaa
[root@www ~]# ll aaa
-rwSr-Sr-T+ 1 redhat xixi 5 Dec 4 14:30 aaa
[root@www ~]# getfacl aaa
file: aaa
owner: redhat
group: xixi
flags: sst
user::rw-
group::r--
mask::r-- (扩展权限标识)
other::r--
[root@www ~]# setfacl -b aaa
[root@www ~]# ll aaa
-rwSr-Sr-T. 1 redhat xixi 5 Dec 4 14:30 aaa
作业题:
1.创建下列用户,组,和组的成员关系(servera)
• 创建组sysmgrs
• 一个名为 natasha 的用户,其属于 sysmgrs,这个组是该用户的从属组
• 一个名为 harry 的用户,属于 sysmgrs,这个组是该用户的从属组
• 一个名为 sarah 的用户,其在系统汇总没有可以交互的 shell
• 用户 natsha,harry,sarah 的秘密吗都要设定为:modteed
#groupadd sysmgrs
#useradd -G sysmgrs natasha
#useradd harry
#usermod -G sysmgrs harry // gpasswd -a harry sysmagrs
#useradd -s /sbin/nologin sarah
用户添加和组添加
2.拷贝文件/etc/fstab 到/var/tmp/fstab 配置文件/var/tmp/fstab 的权限
• 文件/var/tmp/fstab 的拥有者是 root 文件/var/tmp/fstab 属于 root 组
• 文件/var/tmp/fstab 对任何用户不可执行
• 用户 natasha 能够对文件/var/tmp/fstab具有读写权限
• 用户 harry 对文件/var/tmp/fstab 既不能读也不能写
• 其他用户(当前和将来的)能对文件/var/tmp/fstab 进行读操作
#cp /etc/fstab /var/tmp/fstab
#chown root:root /var/tmp/fstab
#setfacl -m u:natasha:rw /var/tmp/fstab
#setfacl -m u:harry:- /var/tmp/fstab
#chmod o+r /var/tmp/fstab == #chmod 640 /var/tmp/fstab
3.创建一个共享目录/home/managers 特性如下
• /home/managers 目录的所有权是 sysmgrs
• sysmgrs 组成员对目录有读写和执行的权限。除此之外的其他用户没有任何权限(root 用户除外)
• 在/home/managers 目录中创建的文件,其组所有权会自动设置为属于 sysmgrs组
#mkdir /home/managers
#chown sysmgrs:sysmgrs /home/managers
#chowd 2770 /home/managers
特殊权限位所属用户位的权限所属组的权限其他用户位的权限
#chmod g=rwx,o=- /home/managers #chmod 770 /home/managers
#chmod g+s /home/managers #chmod 2770 /home/managers
tab == #chmod 640 /var/tmp/fstab
3.创建一个共享目录/home/managers 特性如下
• /home/managers 目录的所有权是 sysmgrs
• sysmgrs 组成员对目录有读写和执行的权限。除此之外的其他用户没有任何权限(root 用户除外)
• 在/home/managers 目录中创建的文件,其组所有权会自动设置为属于 sysmgrs组
#mkdir /home/managers
#chown sysmgrs:sysmgrs /home/managers
#chowd 2770 /home/managers
特殊权限位所属用户位的权限所属组的权限其他用户位的权限
#chmod g=rwx,o=- /home/managers #chmod 770 /home/managers
#chmod g+s /home/managers #chmod 2770 /home/managers