一、Linux用户、组的概念
1.用户
管理员:root,0
其他用户:1-65535
系统用户:1-499,守护进程获取资源进行权限分配
普通用户:500+,交互式登陆
2.组
管理员组:root,0
其他用户:1-65535
系统用户组:1-499
普通用户组:500+
note:关于uid,gid的范围可以参考/etc/login.def
3.Linux安全上下文
进程所能够访问的所有资源的权限取决于进程的发起者,如head -5 /etc/shadow,
这个命令,root及chen两个用户执行的结果是不一样的
二、Linux用户/组的相关文件
1./etc/passwd:存储用户属性信息,包含下面7个字段
account: 账号名称;password:用户密码占位符;UID:用户ID;GID:组ID;GECOS:用户信息;directory:用户家目录;shell:用户登陆shell;
2./etc/group:存储组及属性信息,包含下面4个字段
group_name:组名称;passwd:用密码;GID:组的ID;user_list:哪些用户属于这些组
3./etc/shadow:存储用户密码属性信息,包含下面9个字段
login_name:用户名称;encrypted password:用户加密后的密码;
date of last password change:指一次修改密码跟1970/1/1号的累加天数
minimum password age:密码最短使用期限,若2的话指必须两天才能修改密码,0表示随时可以改密码
maximum password age:密码最长使用期限,默认为99999,表示用户密码永远不会过期
password warning period:表示密码过期前多少天开始报警,默认为7,指密码过期前7天会提醒用户
password inactivity period:用户的非活动期限,期间用户只要一登陆系统就会被要求修改密码,过了这段时间若还没修改密码,密码则会过期
account expiration date:账号过期时间,只要过了这个时间点用户就能再使用用户了
reserved field:预留字段,以备将来使用
4./etc/gshadow:存储组密码属性信息,
group_name:组名称;encrypted password加密密码;设置有管理权限的用户列表: 调协组成员列表
三、Linux用户/组相关的命令:
1.useradd option login
常用参数:
-u:用户uid
-g:基本gid
-c:用户其信息
-G:用户附加组信息,一个用户可以有多个附加组
-d:用户家目录
-s:用户shell
-r:创建系统用户
note:useradd -D会修改 /etc/default/useradd的数据,-D并不能直接应用于用户
2.groupadd [options] group
常用参数:
-g:指定GID
-r:创建系统组
3.usermod [options] login
常用参数:
-u:新uid
-g:新基本gid
-G:新的加附组,组必须先存在。默认情况下会覆盖原来组,若要保留原有的组则在要结合-a一起使用,即为append
-c:新注解信息
-d:用户家目录,需要结合选项-m一起使用,否则不会将家目录原有所有的文件移到新家目录下
-s:shell名称
-l:新的名称,不会改变家目录
-L:lock指定用户,即密码过期,用户将不能登陆系统
-U:unlock指定用户
-e:账号过期时间,用户将不可用
-f:非活动限期
4.passwd option username
常有参数:
-l:锁定账号,密码过期,系统将不可用
-u:解锁账 号
-n mindays:最短使用期限
-x maxdays:最长使用期限
-w:密码过期前多少开始告警
-i:非活动限期
-e:使账号密码过期,账号登陆后需要修改密码
5.id [option] user
-u:uid
-g:gid
-G:附加ID
-n:跟-ugG一起使用,只显示用户名称
-r:跟-ugG一起使用,只显示用户ID
6.su [option] user:
su:非完全切换,不会读取用记的配置文件(较少使用)
su -:完全切换,会读取用户的配置文件(经常使用)
参用参数:
-c:在切换时执行命令,如下,
-l:同-,为完全切换
7.userdel [option] login:
常用参数:
-r:删除用户家目录
8.groupmod [option] group:
-n group_name:新名称,文件名称会随名称变化而变化
-Gid:新Gid,当gid变化后gid不会随着改变
9.groupdel group_name
10.gpasswd [option] group
常用参数:
-a:将用户添加到某组中
-d:将某用户从某组中移除
-A:设置管理权限列表
四、Linux权限管理
1. 权限的针对三类对象
linux主要对三类对象进行定义:
owner:属主u
group:属组g
other:其他o
2. 针对每类对象定义三类权限
r:Readable
w:writable
x:excutable
文件:
r:可读取文件中的内容
w:可编辑文件中的内容
x:可把此文件提请为内核的一个启动进程
目录:
r:可以使用ls列出目录下面的内容
w:可在目录下创建、删除文件
x:可以cd到目录里
3. 权限的数值转换
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
4. chmod
chmod [OPTION]... MODE[,MODE]... FILE:即chmod u+x test.txt
chmod [OPTION]... OCTAL-MODE FILE:即chmod 755 test.txt
chmod [OPTION]... --reference=RFILE FILE:参考某文件设置权限
常用参数:
-R递归修改权限
-mode:
修改一类用户的权限:
u=、g=、o=、ug=、a=、go=、u=,g=
修改一类用户的某位权限:
u+、u-
5. chown
chown [OPTION]... [OWNER][:[GROUP]] FILE...
chown [OPTION]... --reference=RFILE FILE...
常用参数:
-R递归修改权限
6. umask:
File:666-umask
note:若某类用户的权限减得的结果存在x权限,则权限+1
Dir:777-umask