用户和组管理
将用户分组是Linux系统中对用户进行管理及控制访问权限的一种手段。
每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。
当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。
用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己称为所要访问的组中的成员。
用户组的所有信息都存放在/etc/group文件中,此文件的格式也类似于/etc/passwd文件,由冒号(:)隔开若干个字段。
添加新的用户账号: useradd 选项 用户名
选项有: -c comment 指定一段注释性描述
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建目录
-g 用户组 指定用户所属的用户组
-G 用户组 指定用户所属的附加组
-s Shell文件 指定用户的登录Shell
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号
删除账号: userdel 选项 用户名
常用的选项是-r 它的作用是把用户的主目录一起删除
修改账号: usermod 选项 用户名
常用的选项包括-c,-d,-m,-g,-G,-s,-u及-o等,与useradd命令中的选项一样,可以为用户指定新的资源值,另外,有些系统可以使用选项:-l 新用户名(这个选项指定一个新的账号,即将原来的用户名改为新的用户名)
用户口令的管理: 指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户指南用它修改自己的口令。
命令格式: passwd 选项 用户名
可使用的选项: -l 锁定口令,即禁用账号
-u 口令解锁
-d 使账号无口令
-f 强迫用户下次登录时修改口令
增加一个新的用户组: groupadd 选项 用户组
可以使用的选项有: -g GID指定新用户组的组标识号(GID)
-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同
删除一个已有的用户组: groupdel 用户组
修改用户组的属性: groupmod 选项 用户组
常用的选项有: -g GID为用户组指定新的组标识号
-o与-g选项同时使用,用户组的新GID可以与系统已有用户的GID相同
-n新用户组 将用户组的名字改为新名字
如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限
命令格式: $ newgrp root
各种Unix/Linux下用户相关的文件及文件权限是什么?
文件类型: (-) 表示普通文件 ASCII/Binary/data
(d) 表示目录 directory
(l) 表示连接档 link
(b)表示区块设备文件 block
(c) 表示字符设备文件 char
(s) 表示套接字文件/资料接口文件 socket
(p) 表示数据输送文件 pipe(/FIFO)
文件权限:
r 读取文件(目录) w 写文件(目录) x 执行文件(目录)
各种Unix/Linux下用户组相关的文件及文件权限是什么?文件类型和文件权限同上,但有具体的区别,详见下图
用户和UID 用户组和GID
如何查看用户的UID? 如何查看用户组的GID?
方法一:使用id命令 命令格式:id 选项 用户名/用户组
命令选项: -a 忽略,兼容其它版本
-Z, -content 只输出当前用户的安全上下文
-g, -group 只输出有效的GID
-G, -groups 输出所有的GID
-n, -name 对于-ugG输出名字而不是数值
-r, -real 对于-ugG输出真实ID而不是有效ID
-u, -user 只输出有效的UID
-help 输出帮助后退出
-version 输出版本信息后退出
方法二:查看/etc/password文件来确定UID和GID
x后面的两个数就是UID和GID了。
如果修改用户的UID,修改后会有什么效果? 如果修改用户组的GID,修改后会有什么效果?
所以说,在一部正常运行的Linux主机环境下,上面的动作不可随便进行,这是因为系统上已经有很多的数据被建立存在了,随意修改系统上某些账号的UID或GID很可能会导致某些程序无法进行,这将导致系统无法顺利运作的结果。