[题内的话]
一台新机器安装好Solaris操作系统后,默认只创建了超级用户root。出于安全设计,我们无法以root用户ssh远程连接该机器。此时就要以root用户,给普通用户、应用程序添加user和group。然后再以普通用户切换(su)到超级用户。以下是命令模式下创建用户和用户组的过程。
[执行环境]
OS: Solaris 5.10
User: root
[配置文件]
/etc/passwd 存放用户的账号信息
/etc/shadow 存放密码相关信息,如密码过期时间等控制策略
/etc/group 组配置信息
[执行过程]
1、添加用户组
groupadd [-g gid] groupName
说明:-g 指定一个新的组ID号(不能与现有的组ID号重复)
groupName 组名
实例:#groupadd -g 102 colleagues
注:此时/etc/group文件被更新,添加了gid为102的组:colleagues
2、添加用户
useradd [-u uid | -g group] | -d dir | -s shell | -c comment | -m [-k skel_dir] ] login
说明: -u 指定一个新的用户ID号(不能与现有的用户ID号重复)
-g 用户所在的组名(groupName)
-d 指定的默认主目录位置
-s 默认启动的shell环境,如/bin/bash
-c 对该userName的注释说明(可略去这一项)
-m 建立home目录
-login 用户名(userName)
实例:#useradd -u 1022 -g colleagues -m -d /export/home/frank -s /bin/bash -c "Frank Cheung" frank
注:此时/etc/passwd文件被更新,添加了uid为1022的用户:frank
另外,创建了新用户就要给它设置密码,方法是,在root用户下执行:passwd userName
3、修改用户组
groupmod [-g gid [-o]] [-n new_group_name] groupName
说明:-g 指定一个gid
-n 指定新的组名
groupName 被修改的组名
实例:#groupmod -g 105 -n friends colleagues
注:此时/etc/group文件中colleagues组名被更新为friends组名了
4、修改用户
usermod [-u uid [-o]] [-g group] [-G group,...]
[-d 主目录 [-m]] [-s shell] [-c 注释] [-l 新名称]
[-f 失效日] [-e 过期日] [-L|-U] 用户名
说明: -c comment
-d home_dir
-e expire_date 指定用户帐号过期日期。日期格式为MM/DD/YY.
-f inactive_days 帐号过期几日后永久失效。当值为0时帐号则立刻失效。而当值为-1时则关闭此功能。预设值为-1
-g initial_group 更新用户新的用户组。用户组名须已存在。用户组ID必须参照既有的的用户组。用户组ID预设值为1
-G group,[...] 定义用户为一堆groups的成员。每个用户组使用","区格开来,不可以夹杂空白字符。用户组名同-g选项的限制。如果用户现在的用户组不在此列,则将用户由该用户组中移除
-l login_name 变更用户login时的名称为login_name。其它不变。特别是,用户目录名应该也会跟着更动成新的登陆名
-s shell 指定新的登陆shell
-u uid用户ID值。必须为唯一的ID值,除非用-o选项。数字不可为负值
实例:#usermod -u 1055 -g 102 -l thomas -c "Thomas Cruise" -d /export/home/thomas -e 12/31/2099 -f 0 -s /bin/csh frank
注:此时/etc/passwd文件中frank用户被更新了
5、删除用户组
groupdel groupName
实例:#groupdel colleagues
注:此时/etc/group文件中colleagues组被删掉了
6、删除用户
userdel [-r] userName
说明:-r 删除用户主目录(必须保证该用户的进程都不存在,否则删不掉)
实例:#userdel frank
注:此时/etc/passwd文件中frank用户被删掉了
(PS: 部分参考自互联网)