Linux自学笔记——用户和组管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux自学笔记——用户和组管理相关的知识,希望对你有一定的参考价值。
资源分派:
Authentication:认证
Authorization:授权
Accouting:审计
Audition
token,identity(username/password)
linux用户:username/UID
管理员:root,0
普通用户:1-65535
系统用户:1-499,1-999
对守护进程获取资源进行权限分配;
登录用户:500+,1000+
交互式登录;
Linux组:groupname/GID
管理员组:root,0
普通组:
系统组:1-499, 1-999
普通组:500+, 1000+
Linux安全上下文:
运行中的程序:进程(process)
以进程发起者的身份运行;
root:cat
tom:cat
进程所能够访问的所有资源的权限取决于进程的发起者的身份;
Linux组的类别:
用户的基本组(主组)
组名同用户名,且仅包含一个用户:私有组
用户的附加组(额外组):
Linux用户和组相关的配置文件:
/etc/passwd:用户及其属性信息(名称、UID、基本组ID等等);
/etc/group:组及其属性信息;
/etc/shadow:用户密码及其相关属性;
/etc/gshadow:组密码及其相关属性;
/etc/passwd:
name:password:UID:GID:GECOS:directory:shell
用户名:密码:UID:GID:GECOS:主目录:默认shell
/etc/group:
group_name:password:GID:user_list
组名:组密码:GID:以当前组为附加组的用户列表(分隔符为逗号)
/etc/shadow root:$6$QBOOu5fJ9rGlA8mU$2Gi8zdRUONPxkaYhcwfR/cSangkqV0bnXnxMqrLNGU1xOfL5EmVfsKNz84Oop41THyXMUtzQsCsv80Bn7fwqe0::0:99999:7:::
用户名:加密了的密码:最近一次更改密码的日期:密码的最小使用期限:最大密码使用期限:密码警告时间段:密码禁用期:账户过期日期:保留字段
加密机制:
加密:明文 à 密文
解密:密文 à 明文
单向加密:提取数据指纹
md5:message digest ,128bits
sha1:secure hash algorithm,160bits
sha224:224bits
sha256:256bits
sha384:384bits
sha512:512bits
雪崩效应:初始的条件的微小改变,将会引起结果的巨大改变;
定长输出:
密码的复杂性策略:
1. 使用数字、大写字母、小写字母及特殊字符中至少3种;
2. 足够长;
3. 使用随机密码;
4. 定期更换;不要使用最近曾经使用过的密码;
用户和组相关的管理命令:
用户创建:useradd
useradd [options] LOGIN
-u UID:[UID_MIN,UID_MAX],定义在/etc/login.defs
-g GID:指明用户的所属基本组,可为组名,也可以为GID;
-c “COMMENT”:用户的注释信息;
-d /path/to/home_dir:以指定的路径为家目录;
-s SHELL:知名用户的默认shell程序,可用列表在/etc/shells文件中;
-G GROUP1[,GROUP2,…]:为用户指明附加组;组必须事先存在;
-r:创建系统用户
Centos6:ID<500
Centos7:ID<1000
默认值设定:/etc/default/useradd文件中
组创建:groupadd
groupadd [option] … groupname
-g GID: 指明GID号;[GID_MIN, GID_MAX]
-r: 创建系统组;
CentOS 6: ID<500
CentOS 7: ID<1000
查看用户的相关的id信息:id
id [option] … [user]
-u:UID
-g:GID
-G:GROUPS
-n:Name
切换用户或以其他用户身份执行命令:su
su [options] [-] [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,…]:新附加组,原来的附加组将会被覆盖;若保留原有,则要同时使用-a选项,表示append
-s SHELL:新的默认shell
c 'COMMENT':新的注释信息;
-d HOME: 新的家目录;原有家目录中的文件不会同时移动至新的家目录;若要移动,则同时使用-m选项;
-l login_name: 新的名字;
-L: lock指定用户
-U: unlock指定用户
-e YYYY-MM-DD: 指明用户账号过期日期;
-f INACTIVE: 设定非活动期限;
给用户添加密码:passwd
passwd [OPTION] username:修改指定用户的密码,仅root用户权限
passwd:修改自己的密码;
常用选项:
-l:锁定指定用户;
-u:解锁指定用户;
-n mindays:指定最短使用期限;
-x maxdays:最大使用期限
-w warndays:提前多少天开始警告
-I inactivedays:非活动期限
--stdin:从标准输入接收用户密码:
echo “PASSWORD”| passwd --stdin USERNAME
删除用户:userdel
userdel [option] … login
-r:删除用户家目录;
组属性修改:groupmod
groupmod [option]… group
-n group_name:新名字
-g GID:新的GID;
组删除:groupdel
groupdel GROUP
组密码:gpasswd
gpasswd [option] GROUP
-a user:将user添加至指定组中;
-d user:删除用户user的以当前组为组名的附加组;
-A user1,user2,…:设置有管理权限的用户列表
newgrp命令:临时切换基本组;
如果用户本不属于此组,则需要组密码;
修改用户属性:chage
chage [OPTION]... LOGIN
-d LAST_DAY
-E, --expiredate EXPIRE_DATE
-I, --inactive INACTIVE
-m, --mindays MIN_DAYS
-M, --maxdays MAX_DAYS
-W, --warndays WARN_DAYS
权限管理:
文件的权限主要针对三类对象进行定义:
owner: 属主, u
group: 属组, g
other: 其他, o
每个文件针对每类访问者都定义了三种权限:
r: Readable
w: Writable
x: eXcutable
文件:
r: 可使用文件查看类工具获取其内容;
w: 可修改其内容;
x: 可以把此文件提请内核启动为一个进程;
目录:
r: 可以使用ls查看此目录中文件列表;
w: 可在此目录中创建文件,也可删除此目录中的文件;
x: 可以使用ls -l查看此目录中文件列表,可以cd进入此目录;
--- 000 0
--x 001 1
-w- 010 2
-wx 011 3
r-- 100 4
r-x 101 5
rw- 110 6
rwx 111 7
例如:
640: rw-r-----
rwxr-xr-x: 755
修改文件权限:chmod
chmod [OPTION]... OCTAL-MODE FILE...
-R: 递归修改权限
chmod [OPTION]... MODE[,MODE]... FILE...
MODE:
修改一类用户的所有权限:
u=
g=
o=
ug=
a=
u=,g=
修改一类用户某位或某些位权限
u+
u-
chmod [OPTION]... --reference=RFILE FILE...
参考RFILE文件的权限,将FILE的修改为同RFILE;
修改文件的属主和属组:
仅root可用;
修改文件的属主:chown
chown [OPTION]... [OWNER][:[GROUP]] FILE...
用法:
OWNER
OWNER:GROUP
:GROUP
Note: 命令中的冒号可用.替换;
-R: 递归
chown [OPTION]... --reference=RFILE FILE...
修改文件的属组:chgrp
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
-R
文件或目录创建时的遮罩码:umask
FILE: 666-umask
Note: 如果某类的用户的权限减得的结果中存在x权限,则将其权限+1
DIR: 777-umask
umask: 查看
umask #: 设定
以上是关于Linux自学笔记——用户和组管理的主要内容,如果未能解决你的问题,请参考以下文章