linux初步学习之用户和用户组及权限管理浅谈
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux初步学习之用户和用户组及权限管理浅谈相关的知识,希望对你有一定的参考价值。
用户、组: 多用户:多人同时使用系统资源; AAA: Authentication身份验证 Account账户
|
用户的类别: 管理员:root 普通用户: 系统用户:仅用于运行服务程序; 登录用户:系统资源的正常使用者; 用户标识:UserID, UID 16bits二进制数字:0-65535; 管理员:0 普通用户: 系统用户: CentOS 5, 6: 1-499 CentOS 7: 1-999 普通用户: CentOS 5,6: 500+ CentOS 7: 1000+ 名称解析:名称转换; 解析库: username <--> UID /etc/passwd:用户名、UID及其它属性信息解析库; |
用户组: 组类别: 管理员组 普通用户组: 系统组 登录组 组标识:GroupID, GroupID 管理员组:0 普通用户组: 系统组: CentOS 5,6: 1-499 CentOS 7: 1-999 登录组: CentOS 5,6: 500+ CentOS 7: 1000+ 名称解析:groupname <--> gid 解析库:/etc/group 组类别:以用户为核心 用户的主组:基本组; 用户的附加组:额外组; 组类别:根据组内容纳的用户来划分 私有组:与用户名相同,且只有一个此用户; 公共组:组内包含了多个用户; 认证机制:验正用户的确是他所声称的人; 通过对比事先存储的,与登录时所提供的信息是否一致; 存储于何处: 用户的认证信息库:/etc/shadow 组的认证信息库:/etc/gshadow 密码:加密存放,使用单向加密机制; 单向加密:仅能加密,不能解密;提取数据特征码; 数据相同:加密结果相同; 定长输出: 雪崩效应: 算法: md5: message digest, 128bits sha1: secure hash algorithm, 160bits sha224 sha256 sha384 sha512 添加salt:取随机数; 随机数: 熵池: 伪随机数:软件模拟产生; /dev/random:仅从熵池返回随机数,随机数耗尽时会阻塞进程; /dev/urandom:先从熵池返回随机数,熵池耗尽时,则从伪随机数生成器返回随机数; |
用户和组的管理: 主要以命令进行: 组:groupadd, groupmod, groupdel 用户:useradd, usermod, userdel 认证:passwd 组解析库文件:/etc/group GRPNAME:x:GID:user1, user2, ... 组名:密码点位符:GID:以此组为附加组的用户列表,以逗号分隔 Eg: nologin:x:2015: storm:x:2016: groupadd命令:添加组 groupadd [选项] group -g GID:指明GID;eg:~]# groupadd -g 1005 apple -r, --system:系统组; groupmod命令:修改组信息 groupmod [选项] GROUP -g GID -n NEW_NAME:修改组名;eg:~]# groupmod -n apple9 apple groupdel命令:删除组 groupdel [选项] GROUP 用户解析库:/etc/passwd name:password:UID:GID:GECOS:directory:shell Eg:storm:x:2016:2016::/home/storm:/bin/bash useradd命令:添加用户 useradd [选项] 登录名 -c, --comment COMMENT:注释信息,一般为Full Name; -d, --home /PATH/TO/HOME_DIR:家目录路径;目标路径不能事先存在,否则会有警告,不会得利skel相关的文件给用户; -g, --gid GROUP:用户的基本组组名或GID; -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:用户所属的附加组列表,彼此间用逗号隔开,中间没有空格; -m, --create-home:强制创建家目录; -M:不创建用户主目录,即使系统在 /etc/login.defs 中的设置 (CREATE_HOME) 为 yes; -r, --system:创建一个系统账户 -s, --shell SHELL:用户的登录 shell 名,默认为留空,让系统根据 /etc/default/useradd 中的 SHELL 变量选择默认的登录shell; -u, --uid UID:用户 ID 的数字值。此值必须为唯一的,除非使用了 -o 选项。此值必须非负,默认使用大于等于UID_MIN,且大于任何其他用户 ID 最小值。 注意:创建登录用户时,为其自定义的shell程序必须为可登录shell,且要位于/etc/shells文件中; useradd -D:显示创建用户时的默认设置; useradd -D 选项:设置某默认选项; -e, --expiredate EXPIRE_DATE:用户账号的过期期限;过期后会被锁定;日期以 YYYY-MM-DD 格式指定 -f, --inactive INACTIVE:密码过期后,账户被彻底禁用之前的天数。0 表示立即禁用,-1 表示禁用这个功能。 为用户提供默认配置的配置文件: /etc/login.defs, /etc/default/useradd 影子口令文件:/etc/shadow 登录名:密码:最近一次的修改时间:密码的最短使用期限:密码最长使用期限:提前警告的天数:非活动期限:账号的禁用日期:保留字段 Eg:apple:$6$x0jm5KMu$N.gOtGoel2RGUsh2HaboaZr/2dECBuoZRH91MYjMvnS5lZgfXQRuOkvzOcTtNcPAE5kudAa.IBvVFTlrwckiM.:16870:0:99999:7::2019: 密码:$加密算法$salt$加密的密码字符串 usermod命令:修改账号信息 -c, --comment COMMENT -d, --home HOME_DIR:修改家目录为新的位置,但一般应该同时使用-m选项以保证原家目录中的文件会移动到新目录中; -g, --gid GROUP eg: ~]# usermod -g 2006 apple -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]:修改时会覆盖原有的附加组;一同使用-a选项,表示为用户添加新的附加组; -l, --login NEW_LOGIN:修改当前用户的用户名; -s, --shell SHELL -u, --uid UID -L, --lock:锁定用户的密码。这会在用户加密的密码之前放置一个“!” -U, --unlock:解锁用户的密码。这将移除加密的密码之前的“!” userdel命令:删除用户账号 userdel [选项] 登录名 -r, --remove:用户主目录中的文件将随用户主目录和用户邮箱一起删除 passwd命令:密码管理命令 passwd [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays] [--stdin] [username] (1) passwd:修改自己的密码; (2) passwd username:修改其它用户的密码,仅root有此权限; 选项: -l:锁定密码 -u:解锁解密 -d:清除密码 --stdin:从标准输入接收密码; echo "PASSWORD" | passwd --stdin USERNAME Eg: ~]# echo "apple6892234" | passwd --stdin apple3 密码复杂度: (1) 不能少于8个字符; (2) 不能使用与过去的密码太相似的密码; (3) 应该使用四类字符中的至少三类;
id命令:查看用户相关的id信息; id [OPTION]... [USER] -u:仅查看uid -g:仅查看gid -G:查看所属的所有组的ID; -n:显示名称,而非ID; su命令:switch user 切换用户时: (1) 不读取目标用户的配置文件(非登录式切换,半切换); su USERNAME (2) 读取目标用户的配置文件(登录式切换,完全切换); su -l USERNAME su - USERNAME -c command, --command=command:仅以指定的用户的身份运行此处指定的命令,而不执行真正的身份切换操作; 注意:root切换至任何其它用户无须认证密码;普通用户切换至其它用户,都需要密码; gpasswd命令:为组添加密码 组密码文件:/etc/gshadow gpasswd [选项] group -a USERNAME:把用户添加至组中; -d USERNAME:从此组中移除此用户; newgrp命令:登录到一个新组 chage命令:修改用户账号的各种期限; |
安全上下文: 进程:以某个用户的身份运行,进程对资源的操作权限取决于它所代表的用户; 文件:权限模型 属主:owner 属组:group 其它:other 权限模型生效的机制: 进程的运行者: 是否与文件的属主相同,如果是,则以文件属主的身份来访问此文件;否则 是否属于文件的属组,如果是,则以文件属组的身份来访问此文件;否则 以文件的其它用户的身份来访问此文件; |
权限管理: 文件系统文件权限: 三类用户: 属主:owner, u 属组:group, g 其它:other, o 权限: r: readable,可读 w: writable, 可写 x:excutable, 可执行 权限管理: 文件: r:可获取文件的数据; w:可修改文件的数据; x:可将此文件运行为进程; 目录: r:可使用ls命令获取其下的所有文件列表;但不可以使用“ls -l”去获取详细信息,也不可以cd至此目录中; w:可修改此目录下的文件列表, 即可以在此目录下创建或删除文件; x:可以使用"ls -l“命令来获取其下的文件的详细属性信息,也可cd至此目录中; rwxrwxrwx: owner: rwx group: rwx other: rwx 权限组合机制: 以owner为例: --- 000 0 --x 001 1 -w- 010 2 -wx 011 3 r-- 100 4 r-x 101 5 rw- 110 6 rwx 111 7 练习: rwxr-xr-x:755 rw-r--r--: 644 750: rwxr-x---, 640: rw-r----- 权限管理: ownership: 仅管理员有权限 改属主:chown 改属组:chgrp mode(permission):仅属主 chmod chmod命令: 作用:change file mode bits chmod [OPTION]... MODE[,MODE]... FILE... chmod [OPTION]... OCTAL-MODE FILE... chmod [OPTION]... --reference=RFILE FILE... 用户的标识符:u,g,o,a (1) chmod [OPTION]... MODE[,MODE]... FILE... [[email protected] ~]$ ll /tmp total 0 drwxr-xr-x. 2 apple apple1 6 Mar 10 08:24 apple [[email protected] ~]$ chmod u=rw- /tmp/apple [[email protected] ~]$ ll /tmp total 0 drw-r-xr-x. 2 apple apple1 6 Mar 10 08:24 apple MODE: 赋权表示法:直接操作一类用户的所有权限位rwx; u= g= o= a= 两类用户权限相同:ug=, go= 不同类的用户权限不同:u=,g=,o= 授权表示法:操作一类用户一位或多位权限; u+, u- g+, g- o+, o- a+, a- 两类用户权限收授机制相同:ug+, ug-, ... 不同类的用户权限不同:u+,g+,o+ (2) chmod [OPTION]... OCTAL-MODE FILE... (3) chmod [OPTION]... --reference=RFILE FILE... --reference=RFILE:RFILE表示参考其权限模型; 常用选项: -R, --recursive:递归修改; chown命令: chown [OPTION]... [OWNER][:[GROUP]] FILE... chown [OPTION]... --reference=RFILE FILE... 常用选项: -R, --recursive:递归修改; chgrp命令: chgrp [OPTION]... GROUP FILE... chgrp [OPTION]... --reference=RFILE FILE... umask:显示或设定文件模式掩码 文件: 666-umask 目录: 777-umask 说明:之所以文件用666去减,表示文件默认不能有执行权限;如果减得的结果中,u,g或o有执行权限时, 则需要加1; 显示: umask 设定: umask MASK 注意:此设定仅对当前shell进程有效; |
以上是关于linux初步学习之用户和用户组及权限管理浅谈的主要内容,如果未能解决你的问题,请参考以下文章