Linux系统中账号及权限管理
⽬录
前⾔
作为⼀个多⽤户、多服务的服务器操作系统,Linux提供了严格的权限管理机制,主要从⽤户⾝份、⽂件权限两⽅⾯对资源访问进⾏限制。本⽂将分别介绍Linux系统中⽤户和组账号的管理、⽂件权限和归属的管理、⽂件和⽬录的权限管理、⽂件和⽬录的归属挂你的相关知识,帮助⼤家解决问题。
⼀.管理⽤户账号和组账号
1.1⽤户账号和组账号概述
Linux基于⽤户⾝份对资源访问进⾏控制
●⽤户帐号:①.超级⽤户:root⽤户是 Linux系统中默认的超级⽤户账号,对主机拥有最⾼的权限,类似于 Windows系统中的Administrator⽤户。只有当进⾏系统管理、维护任务时,才建议使⽤root⽤户登录系统,⽇常事务处理建议只使⽤普通⽤户账号。
②.普通⽤户:普通⽤户账号需要由root⽤户或其他管理员⽤户创建,拥有的权限受到⼀定限制,⼀般只在⽤户⾃⼰的宿主⽬录中拥有完整权限。
③.程序⽤户:在安装 Linux系统及部分应⽤程序时,会添加⼀些特定的低权限⽤户账号,这些⽤户⼀般不允许登录到系统,⽽仅⽤于维持系统或某个程序的正常运⾏,如bin、 daemon、ftp、mail等。
●组帐号:①.基本组(私有组):基本组(私有组):基本组账号只有⼀个,⼀般为创建⽤户时指定的组。在/etc/passwd⽂件中第4字段记录的即为该⽤户的基本组 GID号。
②.附加组(公共组):⽤户除了基本组以外,额外添加指定的组。
●UID和GID:UID (User lDentity,⽤户标识号):Linux系统中的每⼀个⽤户账号都有⼀个数字形式的⾝份标记,称为UID,对于系统核⼼来说,UID作为区分⽤户的基本依据,原则上每个⽤户的UID号应该是唯⼀的。root⽤户账号的UID号为固定值0.⽽程序⽤户账号的UID号默认在1-499之间,500-60000的UID号默认分配给普通⽤户账号使⽤。
GID (Group lDentify,组标识号):与UID相类似,每⼀个组账号也有⼀个数字形式的⾝份标记,称为GID。root组账号的GID号为固定值0,⽽程序组账号的GID号默认在1-499之间,普通组账号使⽤的UID号默认为500-60000.
1.2⽤户账号⽂件letc/passwd
保存⽤户名称、宿主⽬录、登录Shell等基本信息:
●⽂件位置:/etc/passwd
●每⼀⾏对应⼀个⽤户的帐号记录
[root@localhost ~]# head -2 letc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
拆解为 ① root :⽤户账号,② X:密码占位符,③ 0:⽤户账号ID,④ 0:组账号IP,⑤ root:⽤户说明,⑥ /root:宿主⽬录,⑦
/
bin/bash:登录Shell。
第 1 字段:⽤户账号的名称,也是登录系统时使⽤的识别名称。
第 2 字段:经过加密的⽤户密码字串,或者密码占位符“x”。
第 3 字段:⽤户账号的 UID 号。
第 4 字段:所属基本组账号的 GID 号。
第 5 字段:⽤户全名,可填写与⽤户相关的说明信息。
第 6 字段:宿主⽬录,即该⽤户登录后所在的默认⼯作⽬录。
第 7 字段:登录 Shell 等信息,⽤户完成登录后使⽤的 Shell
1.3⽤户账号⽂件letc/shadow
保存⽤户的密码、账号有效期等信息
●⽂件位置:letc/shadow
●每⼀⾏对应⼀个⽤户的密码记录
1[root@localhost ~]# head -2 /etc/shadow
2
3root:$1$55HB4pbx$acHqk4IZiHTZ9cwOZJe8f0:14374:0:99999:7:::
4
5bin:*:14374:0:99999:7:::
6
7[root@localhost ~]# tail -1 /etc/shadow
8
9teacher:$1$BT7teaYX$s2sr6uFUwKhtU.8/8VpzB1:14374:0:99999:7:::
/etc/shadow ⽂件只有 root ⽤户拥有读权限,其他⽤户没有任何权限,这样就保证了⽤户密码的安全性
和 /etc/passwd ⽂件⼀样,⽂件中每⾏代表⼀个⽤户,同样使⽤ ":" 作为分隔符,不同之处在于,每⾏⽤户信息被划分为 9 个字段
下⾯详解shadow⽂件中的配置各字段含义 :
1 字段:⽤户账号名称。
2 字段:使⽤ SHA-512,哈希算法中的⼀种加密的密码字串信息,当为“或”、“!!”时表⽰此⽤户不能登录到系统。若该字段内容为空,则该⽤户⽆须密码即可登录系统。
3 字段:上次修改密码的时间,表⽰从 1970 年 01 ⽉ 01起始⽇算起到最近⼀次修改密码时间隔的天数。
4 字段:密码的最短有效天数,⾃本次修改密码后,必须⾄少经过该天数才能再 次修改密码。默认值为 0,表⽰不进⾏限制。
5 字段:密码的最长有效天数,⾃本次修改密码后,经过该天数以后必须再次修 改密码。默认值为 99999,表⽰不进⾏限制。
6 字段:提前多少天警告⽤户密码将过期,默认值为 7。
7 字段:在密码过期之后多少天内禁⽤此⽤户。
8 字段:账号失效时间,此字段指定了⽤户作废的天数,默认值为空,表⽰账号永久可⽤。
9 字段:保留字段,⽬前没有特定⽤途。
1.4添加⽤户账号
useradd命令:
useradd[选项]...⽤户名
常⽤选项:-u、-d、-e、-g、-G、-M、-s
1[root@localhost ~]# useradd -d lftphomelmike -g mike -G
2ftpuser -s /sbin/nologin mike
添加⽤户账号
-u:指定⽤户的UID号,要求该UID号码未被其他⽤户使⽤。
-
d:指定⽤户的宿主⽬录位置(当与-M⼀起使⽤时,不⽣效)。
-e:指定⽤户的账户失效时间,可使⽤YYYY-MM-DD的⽇期格式。2021-01-01
-g:指定⽤户的基本组名(或使⽤GID号)。
-G:指定⽤户的附加组名(或使⽤GID号)。
-M:不建⽴宿主⽬录,即使/etc/login.defs系统配置中已设定要建⽴宿主⽬录。
-s:指定⽤户的登录Shell。
注:/etc/login.defs 是设置⽤户帐号限制的⽂件。该⽂件⾥的配置对root⽤户⽆效。
如果/etc/shadow⽂件⾥有相同的选项,则以/etc/shadow⾥的设置为准,也就是说/etc/shadow的配置优先级⾼于/etc/login.defs
1.5设置/更改⽤户⼝令passwd
passwd命令:
passwd[选项]...⽤户名
常⽤选项:-d、-l、-S、-u
不指定⽤户名时,修改当前账号的密码
passwd选项
-d:清空指定⽤户的密码,仅使⽤⽤户名即可登录系统。
-l:锁定⽤户账户。
-S:查看⽤户账户的状态(是否被锁定)。
-u:解锁⽤户账户
1.6chage命令
⽤来修改帐号和密码的有效期限,针对⽬前系统已经存在的⽤户:
chage[选项]⽤户名
-m:密码可更改的最⼩天数。为零时代表任何时候都可以更改密码。
-
M:密码保持有效的最⼤天数。chage -M 60 root
-w:⽤户密码到期前,提前收到警告信息的天数。
-E:帐号到期的⽇期。过了这天,此帐号将不可⽤。
-d:上⼀次更改的⽇期。
-i:停滞时期。如果⼀个密码已过期这些天,那么此帐号将不可⽤。
-l:例出当前的设置。由⾮特权⽤户来确定他们的密码或帐号何时过期。
1chage -E 2019-04-29 test  //其中,test为⽤户,⽤户将在2019年4⽉29⽇失效(不可登录)2chage -d 2019-06-30 test  //设置test⽤户最后⼀次修改密码的⽇期为2019年6⽉30⽇
3chage -d 0 test            //则代表该test⽤户需⽴即修改密码
4
5date -d "+45 days" -u      //如果不知道时间可以⽤date查看
6
7-u:UTC时间
[root@localhost ~]# chage -l  root
最近⼀次密码修改时间                          :从不
密码过期时间                                        :从不
密码失效时间                                        :从不
帐户过期时间                                        :从不
两次改变密码之间相距的最⼩天数        :0
两次改变密码之间相距的最⼤天数        :99999
在密码过期之前警告的天数                  :7
归纳: 第三个字段为:密码最后⼀次修改的时间      (chage -d)
第四个字段为:密码最⼩修改间隔时间          (chage -m)
第五个字段为:密码的有效期                        (chage -M)
第六个字段为:密码需要变更前的警告天数  (chage -W)
第七个字段为:密码过期后的宽限天数          (chage -I)
第⼋个字段为:账号失效时间                        (chage -E)
1.7修改⽤户账号的属性usermod怎么将linux系统改成中文
usermod命令:
usermod[选项]...⽤户名    常⽤选项:●-l、-L、-U
-l:更改⽤户账号的登录名称(Login Name)
-L:锁定⽤户账户
-U:解锁⽤户账户
以下选项与useradd命令中的含义相同:-u、-d、-e、-g、-G、-s
1.8删除⽤户账号userdel
userdel命令:
userdel[-r]⽤户名
添加-r选项时,表⽰连⽤户的宿主⽬录⼀并删除:
1[root@localhost ~]# useradd stu01
2[root@localhost ~]# Is -ld /home/stu01/
3drwx------ 2 stu01 stu01 4096 09-09 12:38 /home/stu01/
4[root@localhost ~]# userdel -r stu01(删除⽤户帐号stu01)
5[root@localhost ~]# ls -ld /home/stu01/
6ls: /home/stuO1/:没有那个⽂件或⽬录
1.9⽤户账号的初始配置⽂件
⽂件来源:新建⽤户账号时,从letc/skel⽬录中复制⽽来
主要的⽤户初始配置⽂件:
1)“/.bashrc_profile”:⽂件中的命令将在该⽤户每次登录时被执⾏。
2)“/.bashrc”:⽂件中的命令会在每次加载“/bin/Bash”程序时,也包括登录系统执⾏。
3)“/.bash_logout”:⽂件中的命令将在⽤户每次退出登录时执⾏,理解这些⽂件的作⽤,可以安排⼀些⾃动运⾏的后台管理任务。
1.10组账号⽂件
组账号⽂件与⽤户帐号⽂件相类似
/etc/group:保存组帐号基本信息
/etc/gshadow:保存组帐号的密码信息
1[root@localhost ~]# grep "adm" /etc/group
2sys:x:3:root,bin,adm
3adm:x:4:root,adm,daemon
4“Adm”是组帐号名“daemon”是组成员列表
1.11添加组账号groupadd
groupadd命令
groupadd[-g GID]组账号名
1[root@localhost ~]# groupadd -g 1000 market    添加组帐号market
2[root@localhost ~]# tail -1 /etc/group
3market:x:1000:
1.12添加删除组成员gpasswg
gpasswd命令
●设置组帐号密码(极少⽤)、添加/删除组成员
gpasswd[选项]...组帐号名
常⽤选项:●-a:向组内添加⼀个⽤户
●-d:从组内删除⼀个⽤户成员
●-M:定义组成员列表,以逗号分隔
1gpasswd -a mike market
2正在将⽤户“ mike”加⼊到“market”组中
3gpasswd -d zhangsan market
4正在将⽤户“” zhangsan”从“ market”组中删除
5gpasswd -M zhangsan1,zhangsan2 , webmaster market
6grep "market" /etc/group
7market:x :1200 : zhangsan1,zhangsan2,webmaster
8将 zhangsan1,zhangsan2 , webmaster添加到market组中
1.13删除组账号groupdel
groupdel命令

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。