linux用户:有UID
管理员:root UID:0
普通用户:UID:1-65535
系统用户:1-499 centos7 1-999
守护进程获取资源进行权限分配
登陆用户:500+ centos7 1000+
交互式登录:
linux组:GID
管理员组:root GID:0
系统组:1-499 centos7 1-999
普通组:500+ centos7 1000+
linux安全上下文:
运行中的程序:进程
以进程发起者的身份运行:
root:cat /etc/passwd
tom: cat /etc/passwd 权限不够
进程所能狗访问的所有资源的权限取决于进程的发起者的身份
linux组的类别:
用户的基本组(主组):
组名同用户名,且包含一个用户:私有组
用户的附加组(额外组)
linux用户 和组相关的配置文件:
/etc/passwd :用户及其属性信息(名称,uid,基本组id等)
/etc/group:组及其属性信息
/etc/shadow:用户密码及其相关属性
/etc/gshadow:组密码及其相关属性
/etc/passwd:
name:password:UID:GID:GECOS:director:shell
用户名:密码:UID:GID:用户的完整信息:用户家目录:默认shell
/etc/group
groupname:password:GID:user_list
组名:组密码:GID:以当前组为附加组的列表
/etc/shadow
用户名:加密后的密码:最近一次更改密码的日期:密码的最小使用期限(密码:密码的最大使用期限:密码警告时间段:密码禁用期:账号过期日期:保留字段
useradd 【option】 username 命令:id +用户名 来查询组id,用户id
-u uid:指定UID 【UIDMIN,UIDMAX】配置文件 /etc/login.defs
-g gid:指明用户所属基本组,可为组名,也可为GID
-c“COMMENT":用户的信息(电话,住址等)
-d:/path/to/home_dir :指定家目录,制定的家目录最好不要事先存在
用户家目录中的基本信息来源:/etc/skel
-s:指明用户默认shell ,shell列表: /etc/shells 文件中
-G:GROUP1[,GROUP2,...GROUPN]
-D:更改默认值 例如:useradd -D-s /bin/tcshell
-r:创建系统用户
centos6:id<500
centos7:id<1000
默认值设定:/etc/default/useradd
useradd -D
-s shell
组创建:groupadd
groupadd 【option】..groupname
-g GID:指明GID号:【gidmin,gidmax】
-r:创建系统组:
centos6:id < 500
centos7:id < 1000
查看用户相关的id:
id 【option】...【user】
-u:UID
-g:GID
-G:基本组和附加组
-n:Name
su 【option】【-】【user【args...】】
切换用户:
su username:非登陆式切换:即不会读取目标用户的配置文件
su - username:登陆式切换,会读取目标用户的配置文件,完全切换
Note:root su至其他用户,无需密码,非root用户切换时需要密码
执行命令:su - username -c ’command‘ 切换其他用户执行命令
-l:su - l username 相当于登陆式切换‘su - username’
usermod:
usermod 【option】login
-u UID:新的UID
-g GID:新基本组
-G Group1【,group2,。。。groupn】username:新附加组,原来的附加组将会被删除;若需保留原有,则要同时使用-a,表示append
-s shell:新的默认shell
-c ’comment‘:新的注释信息
-d home:新的家目录,原有家目录中的文件不会移动至新家目录,若虚移动,使用 -m
选项 usermod -d home -m username
-l login name:新的名字
-L:lock 指定用户
-U:解锁指定用户
-e YYYY-MM-DD:指明用户账号过期日期
-f inactive:设定非活动期限
给用户添加密码;passwd
passwd 【option】username :修改指定用户密码,仅root用户可以
passwd:修改自己的密码
选项:-l:锁定用户
-u:解锁
-n minday 多久不可修改密码
-x maxday:多久内必须要修改密码
-w warndays:密码过期前的警告天数
-i inactivedays:非活动期限设定
--stdin:从标准输入接受用户密码
echo “passwd”|passwd --stdin username
Note:/dev/null,bit buckets 黑洞
/dev/zero,吐零
删除用户:userdel
userdel 【option】 username
-r:删除用户家目录
组属性修改:groupmod
groupmod 【option】。。。group
-n groupname:新名字
-g GID:新的GID
组删除:groupdel
groudel 组名
组密码:gpasswd
gpasswd [option] group
-a username 组名:将user添加至指定组中
-d username 组名:删除用户user的以当前组为组名的附加组
-A user1,user2,。。。:设置有管理权限的用户列表
其他命令:
newgrp 组名:临时切换基本组
如果用户不属于此组,则需要组密码
chage:更改用户密码过期信息
chage 【option】..LOGIN
-d:最近一次修改密码的时间
-E:密码过期期限
-I:非活动期限
-m:密码最小使用期限
-M:最大使用期限
-W:警告期限
其他命令:chfn username:(修改用户基本信息:电话,住宅)
用finger查看
chsh username:修改默认shell
权限管理:
文件权限主要针对三类对象进行定义:
owner:属主:u
group:属组:g
other:其他,o
每个文件针对每类访问者定义了三种权限:
r:Readable
w:Writeable
x:excutable
文件:
r:可使用文件查看类工具获取其内容
w:可修改文件内容
x:可以把此文件提请内核启动为一个进程
目录:
r:可以使用ls查看此目录中创建文件,也可删除此目录中的文件
w:可在此目录中创建文件,也可删除此目录中的文件。若一个目录中的某个文件,用户对他没有w权限,而对该目录有w权限,则用户可以将该文件删除
x:可以使用ls -l查看目录中文件列表,可以cd进入此目录
--- :000 0
--x :001 1
-w- :010 3
r-- :100 4
r-x :101 5
rw- :110 6
rwx :111 7
chmod 【option】...octal-mode file
-R :级联(递归)修改权限
chmod 【option】...mode【,mode】。。。file
mode:
修改某一类用户权限
chmod u=rwx filename
chmod ug=rwx filename
chmod u=rwx,g=-wx filename
u=,g=,ug=,uo=,go=,a=
修改一类用户某位或某些权限
u+,u-,g+,g-,o+,o-
chmod [option] ... --reference -RFILE FILE
参考RFILE文件的权限,将FILE的权限修改为RFILE
chmod --reference=./c.txt a.txt
修改文本属主属组:
仅root可用:
修改文件属主:chown 【option】 。。。【属主】:【属组】 file
用法:
属主
属主:属组
:属组
注意:命令中的冒号可用.替换
-R:递归修改目录中的文件权限
chown [option] ... --reference -RFILE FILE
修改文件的属组:chgrp
chgrp 【option】。。。group file
chgrp [option] ... --reference -RFILE FILE
-R :递归