day07 - 副本

day07

多用户多任务的管理系统

linux管理模式私有模式: 每一个用户对应一个和用户同名的组

​ 公有模式

1.用户类别(65535个用户)

管理员: root UID=0

普通用户:redhat 1-65535

​ 系统用户: 系统安装自动创建 1-200 201-999

​ 一般用户: 手动添加 1000-60000

1.1创建用户

useradd 用户名

/usr/sbin/useradd
-u  指定用UID     
-g  指定GID,修改用户的基本组    
-G  指定附加组               
-c  注释                    
-d  家目录                
-s  设置shell                   

1.2查看用户

grep ‘^用户名’ /etc/passwd

id 用户名

cat /etc/passwd 用户配置文件

root:x:0:0:root:/root:/bin/bash      /sbin/nologin
用户名:密码占位符: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@www ~]# useradd haha
[root@www ~]# tail -1 /etc/group
haha:x:1002:
[root@www ~]# userdel -r haha
[root@www ~]# tail -1 /etc/group
user:x:1001:
[root@www ~]# useradd xixi
[root@www ~]# usermod -G xixi user
[root@www ~]# tail -1 /etc/group
xixi:x:1002:user
[root@www ~]# userdel -r xixi        ---xixi基本组中存在其他用户,删除用户不会删除基本组
userdel: group xixi not removed because it has other members.
[root@www ~]# tail -1 /etc/group
xixi:x:1002:user

1.5用户设置/修改密码

passwd [用户名]

-d   删除用户密码
-l   锁定用户密码
-u   解锁用户密码
管理员:可以指定用户名更改系统任意用户的密码不需要输入之前的密码,不严格匹配密码等级设置
普通用户:不可以指定用户名,只能更改自己的密码,需要输入之前的密码,严格匹配密码等级设置
echo mima | passwd --stdin 用户名

chpasswd

[root@www ~]# cat users
redhat:1234
root:1234
xiao1:1234
[root@www ~]# cat users | chpasswd
[root@www ~]# echo redhat:123456 | chpasswd

1.6破解密码

关机-->开机-->鼠标进入启动界面-->第一个引导菜单-->e --->找到linux这一行在行尾添加rd.break 
--->ctrl-x--->mount     -o       remount,rw    /sysroot    --->chroot   /sysroot -->passwd root-->设置密码--确认密码--->touch   /.autorelabel -->exit --exit  (等待)

2.组类别

管理组: root GID=0

普通组: 1-60000

​ 系统组

​ 一般组

主组,基本组、私有组,用户的默认组

附加组,额外组 用户组默认组之外的组

2.1组添加

groupadd 组名

2.2查看组

grep ‘^组名’ /etc/group

cat /etc/group 组配置文件

#man  5  group
redhat:x:1000:
组名:组密码占位符:GID组id:组中的用户名

2.3修改组信息

groupmod [option…] [选项参数] 组名

#groupadd grp2 
-n  指定新组名   #groupmod  -n  g2  grp2
-g  指定GID     #groupmod -g  2222 g2

2.4删除组

groupdel 组名

注:是能删除一个附加组,哪怕附加组中由用户也可以删除,但是不能删除一个基本组

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

1.新建组,shengchan,caiwu,jishu

2.新建用户要求如下:

​ * wjx 是shengchan组的附加用户

​ * liuy 是caiwu组的附加用户

​ * 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 
#groupmod -g 1111 std1
#groupadd -g 2222 std2

#useradd u1
#useradd u2
#usermod -u 1088 u1
#usermod -c laoda 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 (d)

​ /var/spool/mail/USERNAME (-)

groupadd /etc/group /etc/gshadow

/etc/shadow 用户密码文件

用户名:加密密码:最后一修改密码的天数(1970/1/1):密码生效最短时间:最长时间:警告时间:延长时间:精确过期时间(1970/1/1):保留字段
#passwd
  -x, --maximum=DAYS      maximum password lifetime (root only)
  -n, --minimum=DAYS      minimum password lifetime (root only)
  -w, --warning=DAYS      number of days warning users receive

/etc/gshadow 组密码信息 7 5

组名:组密码:组长:组成成员

/etc/default/useradd 用户创建默认加载的配置文件

参数含义
GR0UP=100这个选项用于建立用户的默认组,也就是说,在添加每个用户时,用户的初始组就是 GID 为 100 的这个用户组。但 CentOS 并不是这样的,而是在添加用户时会自动建立和用户名相同的组作为此用户的初始组。也就是说这个选项并不会生效。 Linux 中默认用户组有两种机制:一种是私有用户组机制,系统会创建一个和用户名相同的用户组作为用户的初始组;另一种是公共用户组机制,系统用 GID 是 100 的用户组作为所有新建用户的初始组。目前我们采用的是私有用户组机制。
HOME=/home指的是用户主目录的默认位置,所有新建用户的主目录默认都在 /home/下。
INACTIVE=-1指的是密码过期后的宽限天数,也就是 /etc/shadow 文件的第七个字段。这里默认值是 -1,代表所有新建立的用户密码永远不会失效。
EXPIRE=表示账号过期时间,也就是 /etc/shadow 文件的第八个字段。默认值是空,代表所有新建用户没有失效时间,永久有效。
SHELL=/bin/bash表示所有新建立的用户默认 Shell 都是 /bin/bash。
SKEL=/etc/skel在创建一个新用户后,你会发现,该用户主目录并不是空目录,而是有 .bash_profile、.bashrc 等文件,这些文件都是从 /etc/skel 目录中自动复制过来的。因此,更改 /etc/skel 目录下的内容就可以改变新建用户默认主目录中的配置文件信息。
CREATE_MAIL_SPOOL=yes指的是给新建用户建立邮箱,默认是创建。也就是说,对于所有的新建用户,系统都会新建一个邮箱,放在 /var/spool/mail/ 目录下,和用户名相同。

/etc/login.defs 登录用户默认匹配的配置文件

注:配置文件中的#表示注释 
 MAIL_DIR    /var/spool/mail   \#创建用户时,要在目录/var/spool/mail中创建一个用户mail文件
 PASS_MAX_DAYS  99999    \#密码最大有效期
 PASS_MIN_DAYS  0    \#两次修改密码的最小间隔时间
 PASS_MIN_LEN  5      \#密码最小长度,对于root无效
 PASS_WARN_AGE  7   \#密码过期前多少天开始提示

 #创建用户时不指定UID的话自动UID的范围
 UID_MIN          500\#用户ID的最小值
 UID_MAX         60000  \#用户ID的最大值

 #自动组ID的范围
 GID_MIN          500\#组ID的最小值
 GID_MAX         60000    \#组ID的最大值

USERDEL_CMD  /usr/sbin/userdel_local  \#当删除用户的时候执行的脚本
CREATE_HOME   yes     \#使用useradd的时候是够创建用户目录
USERGROUPS_ENAB yes    \#用MD5加密密码

练习题2

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范围的配置文件,修改为1500-60000。并查看密码加密算法

cat /etc/login.defs

6.查看创建用户时的模板配置文件

cat /etc/default/useradd

7.修改创建用户时的默认设置,家目录/www,默认shell 为/sbin/nologin

cat /etc/default/useradd

权限

1.linux中权限在文件中标识

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zFJQZmfp-1670232645177)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20221204141312504.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AWdKlElo-1670232645178)(file:///C:/Users/Administrator/Documents/WXWork/1688850714937101/Cache/Image/2022-12/image-20221203140008763.png)]

2.权限的描述形式

(1)字符形式 r read w write x excute

(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              755

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其他用户   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
eg:
[root@www ~]# ll aaa
-------rw-. 1 root root 5 Dec  4 14:30 aaa
[root@www ~]# chown xixi:haha  aaa
[root@www ~]# ll aaa
-------rw-. 1 xixi haha 5 Dec  4 14:30 aaa
[root@www ~]# chown redhat aaa
[root@www ~]# ll aaa
-------rw-. 1 redhat haha 5 Dec  4 14:30 aaa
[root@www ~]# chgrp  xixi aaa
[root@www ~]# ll aaa
-------rw-. 1 redhat xixi 5 Dec  4 14:30 aaa

6.创建文件默认的权限值

文本文件最高的权限值:666

权限掩码(权限过滤值:022 #umask

文本文件默认的权限值:644


目录文件最高的权限值:777

权限掩码(权限过滤值:022 #umask

目录文件默认的权限值:755

rw-	rw-	rw-	  6  6  6
--- -wx -wx   0  3  3   
rw- r-- r--   6  3  3-----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 /etc/fstab /var/tmp/fstab
#chown zhangsan /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权限,可执行文件的进程所属用户是可执行文件自身的用户;
eg:
[root@www ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 33544 Dec 14  2019 /usr/bin/passwd
[root@www ~]# ll /etc/shadow 
----------. 1 root root 1568 Dec  4 11:58 /etc/shadow    (对所有用户没有任何权限)
[redhat@www ~]$ passwd       (为什么普通用户可以修改密码/etc/shadow)
Changing password for user redhat.
Current password:                
原因:通过普通用户执行passwd,passwd文件进程身份是root

设置情况:通过任意用户执行命令,通过root身份来执行就可以设置特殊权限u+s

g+s =2 sgid 所属组的禁锢位

(1)对可执行文件设置有意义:(很少用)
可执行文件(命令文件)设置g+s权限,可执行文件的进程所属组是可执行文件自身的所属组;
(2)对目录文件设置有意义:
任意用户在该目录下创建的文件,文件的所属组都是目录的所属组
eg:
[root@www ~]# mkdir /pub
[root@www ~]# chmod 777 /pub
[root@www ~]# ll /usr/bin/touch 
-rwxr-xr-x. 1 root root 96144 Jul 10  2021 /usr/bin/touch
[user@www ~]$ touch /pub/u1
[user@www ~]$ ll /pub/u1 
-rw-rw-r--. 1 user user 0 Dec  4 16:20 /pub/u1
----------------------目录g+s------------------------------------
[root@www ~]# chmod g+s /pub
[root@www ~]# ll /pub -d
drwxrwsrwx. 2 root root 16 Dec  4 16:20 /pub
[user@www ~]$ touch /pub/u2
[user@www ~]$ ll /pub/
total 0
-rw-rw-r--. 1 user user 0 Dec  4 16:20 u1
-rw-rw-r--. 1 user root 0 Dec  4 16:22 u2

o+t =1 sticky 冒险位

仅对目录文件设置有意义:
目录文件设置o+t权限后,普通用户只能删除自己的文件不能删除别人的文件
[root@www ~]# ll -d /test
drwxrwxrwx. 3 root root 102 Dec  4 15:18 /test
[root@www ~]# ll /test
total 0
-rw-r--r--. 1 root   root   0 Dec  4 15:09 r2
-rw-r--r--. 1 root   root   0 Dec  4 15:09 r3
-rw-r--r--. 1 redhat redhat 0 Dec  4 15:10 red1
-rw-r--r--. 1 redhat redhat 0 Dec  4 15:10 red2
-rw-r--r--. 1 redhat redhat 0 Dec  4 15:10 red3
-rw-r--r--. 1 user   user   0 Dec  4 15:10 u1
-rw-r--r--. 1 user   user   0 Dec  4 15:10 u2
-rw-r--r--. 1 user   user   0 Dec  4 15:10 u3
[user@www test]$ rm -f r2    删除任意用户的文件
--------------------目录o+t----------------------------------
[root@www ~]# chmod o+t /test
[root@www ~]# ll -d /test
drwxrwxrwt. 3 root root 92 Dec  4 16:28 /test

[user@www test]$ rm -f r3
rm: cannot remove 'r3': Operation not permitted
[user@www test]$ rm -f u1
[user@www test]$ rm -f red1
rm: cannot remove 'red1': Operation not permitted

8.扩展权限

./+

getfacl 查看文件的权限列表

[root@www ~]# getfacl aaa
# file: aaa
# owner: redhat
# group: xixi
# flags: sst
user::rw-
group::r--
other::r--

setfacl 设置权限列表

-m 指定权限列表

​ setfacl -m u:用户名(UID):权限 file

​ setfacl -m g:组名(GID):权限 file

[root@www ~]# setfacl -m u:xixi:rwx aaa
[root@www ~]# getfacl  aaa
# file: aaa
# owner: redhat
# group: xixi
# flags: sst
user::rw-
user:xixi:rwx
group::r--
mask::rwx
other::r--

-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

1
#groupadd servera
#gpasswd -a -G sysmgrs nnatasha
#gpasswd -a -G sysmgrs harry
#useradd sarah-s /sbin/nologin
#passwd sarah
modteed
#echomodteed | passwd --stdin nasha
#echo harry:modteed | chpasswd
#vim file
natsha:modteed
harry:modteed
sarah:modteed
#cat file | chpasswd

2.拷贝文件/etc/fstab 到/var/tmp/fstab 配置文件/var/tmp/fstab 的权限
• 文件/var/tmp/fstab 的拥有者是 root 文件/var/tmp/fstab 属于 root 组
• 文件/var/tmp/fstab 对任何用户不可执行
• 用户 natasha 能够对文件/var/tmp/fstab具有读写权限

#useradd natasha
#setfacl -m u:natasha:rw   /var/tmp/fstab

• 用户 harry 对文件/var/tmp/fstab 既不能读也不能写

#useradd harry
#setfacl -m u:harry:---  /var/tmp/fstab

• 其他用户(当前和将来的)能对文件/var/tmp/fstab 进行读操作

2
#cp /etc/fstab /var/tmp/fstab
#chown root:root /var/tmp/fstab
#chmod a-x /var/tmp/fstab
#setfacl -m u:natasha:rw- /var/tmp/fstab
#setfacl -m u:harry:---  /var/tmp/fstab
#chomod o+r /var/tmp/fstab

3.创建一个共享目录/home/managers 特性如下

• /home/managers 目录的所有权是 sysmgrs
• sysmgrs 组成员对目录有读写和执行的权限。除此之外的其他用户没有任何权限(root 用户除外)
y 的用户,属于 sysmgrs,这个组是该用户的从属组
• 一个名为 sarah 的用户,其在系统汇总没有可以交互的 shell
• 用户 natsha,harry,sarah 的秘密吗都要设定为:modteed

3
#chown sysmgrs:sysmgr /home/mangers
#setfacl -m g:sysmgrs:rwx /home/mangers
#setfac -m u:root:rwx /home/mangers
#chmod o-rwx /home/managers

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值