Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有一个惟一的用户名和各自的口令。用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的主目录。
///
//用户添加、修改、删除例子如下:
$useradd -d /home/c -m c //创建一个新的用户c,并创建c为主目录(系统自动创建一个用户组,名为c与用户名相同)
$usermod -G a,b -s /bin/bash c //修改用户c,添加新的附加组a,b,一个用户可以添加到多个用户组中,用户使用shell bash登录
$userdel -r c //此命令删除用户sam在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。
///
用户管理的一项重要内容是用户口令的管理。用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。
指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。命令的格式为:
//当前用户是c
$passwd
$old passwd ******... //旧的密码
$new passwd ******... //新建的密码
$re-enter passwd ******...//确认新密码
//当前是超级用户
$passwd c
$new passwd ******... //新建的密码
$re-enter passwd ******...//确认新密码
/
//用户组例子如下
$ gourpadd -g 444 groupone //此命令向系统中增加了一个新组groupone,同时指定新组的组标识号:444
$groupdel groupone //删除用户组groupone
//要想删除组,不允许有初始用户存在,如果存在,则不能删除。
$groupmod -g 666 -n grouptwo groupone //将用户组的UID标识符改为666,并将groupone名字改成grouptwo
$groups 用户名 //显示用户所在的所有组
/
//其他命令
$whoani //我是谁,显示当前登录的用户名
$ id 用户名 //显示指定的用户信息,含:用户id,用户名,用户组id和名称,附属组列表
$chfn 用户名 //设置用户资料,依次输入用户资料
$finger 用户名 //显示用户详细资料
/
//让普通用户拥有root的权限
1.root登录
2.adduser 用户名
3.passwd 用户名
确定密码
4.修改/etc/passwd即可,把用户名的ID和ID组修改成0。
///
用户信息文件 /etc/passwd
$sudo cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
以上每行是以冒号(:)来区分字段
第一字段:用户名称
第二字段:密码标志
第三字段: UID
0 : 代表超级用户, 1-499:代表系统用户(伪用户) 500——65535+:代表自定义的普通用户
第四字段:GID用户初始组【只有一个,创建用户时自动建立,不推荐改】和附加组【同时属于其他组,像是大学的社团】
第五字段:用户说明
第六字段:家目录【普通用户 home/用户名【二级目录】 超级用户:/root/【一级目录】】
第七字段:登陆之后的shell:linux的命令解释器标准:bin/bash sbin/nologin
注意:Root不一定是管理员 uid=0的一定是管理员
//
影子文件 /etc/shadow
$sudo cat /etc/shadow
root:!:17866:0:99999:7:::
daemon:*:17212:0:99999:7:::
bin:*:17212:0:99999:7:::
sys:*:17212:0:99999:7:::
sync:*:17212:0:99999:7:::
games:*:17212:0:99999:7:::
第一字段:用户名
第二字段:加密密文【密码相同,密文也不相同】 sha521加密 ** !!没密码
第三字段:密码的最后一次修改日期 【时间戳表示 1970.1.1后的一天为一戳】
第四字段:两次密码修改间隔的时间
第五字段:密码的有效期273年
第六字段:到期之前的提醒天数
第七字段:到期后的宽限时间
第八字段:账号失效时间【不管它之前的有效期限 时间戳转换 date –d “1970-01-01 17000days”】
第九字段:保留字
组信息文件 /etc/group
$cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
第一字段:组名
第二字段:组密码标志
第三字段:GID
第四字段:组中附加用户
///
///添加用户命令
$useradd
-b, --base-dir BASE_DIR 新账户的主目录的基目录
-c, --comment COMMENT 新账户的 GECOS 字段
-d, --home-dir HOME_DIR 新账户的主目录
-D, --defaults 显示或更改默认的 useradd 配置
-e, --expiredate EXPIRE_DATE 新账户的过期日期
-f, --inactive INACTIVE 新账户的密码不活动期
-g, --gid GROUP 新账户主组的名称或 ID
-G, --groups GROUPS 新账户的附加组列表
-h, --help 显示此帮助信息并推出
-k, --skel SKEL_DIR 使用此目录作为骨架目录
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-l, --no-log-init 不要将此用户添加到最近登录和登录失败数据库
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
-N, --no-user-group 不创建同名的组
-o, --non-unique 允许使用重复的 UID 创建用户
-p, --password PASSWORD 加密后的新账户密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID
-U, --user-group 创建与用户同名的组
-Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER
//修改用户命令
$usermod
-c, --comment 注释 GECOS 字段的新值
-d, --home HOME_DIR 用户的新主目录
-e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE
-f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态
-g, --gid GROUP 强制使用 GROUP 为新主组
-G, --groups GROUPS 新的附加组列表 GROUPS
-a, --append GROUP 将用户追加至上边 -G 中提到的附加组中,
并不从其它组中删除此用户
-h, --help 显示此帮助信息并推出
-l, --login LOGIN 新的登录名称
-L, --lock 锁定用户帐号
-m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用)
-o, --non-unique 允许使用重复的(非唯一的) UID
-p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码
-R, --root CHROOT_DIR chroot 到的目录
-s, --shell SHELL 该用户帐号的新登录 shell
-u, --uid UID 用户帐号的新 UID
-U, --unlock 解锁用户帐号
-v, --add-subuids FIRST-LAST add range of subordinate uids
-V, --del-subuids FIRST-LAST remove range of subordinate uids
-w, --add-subgids FIRST-LAST add range of subordinate gids
-W, --del-subgids FIRST-LAST remove range of subordinate gids
-Z, --selinux-user SEUSER 用户账户的新 SELinux 用户映射
//用户删除命令
$userdel
-f, --force 即使不属于此用户,也强制删除文件
-h, --help 显示此帮助信息并推出
-r, --remove 删除主目录和邮件池
-R, --root CHROOT_DIR chroot 到的目录
-Z, --selinux-user 为用户删除所有的 SELinux 用户映射
//添加用户组
$groupadd
-f, --force 如果组已经存在则成功退出
并且如果 GID 已经存在则取消 -g
-g, --gid GID 为新组使用 GID
-h, --help 显示此帮助信息并推出
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-o, --non-unique 允许创建有重复 GID 的组
-p, --password PASSWORD 为新组使用此加密过的密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
–extrausers Use the extra users database
//用户组修改
$groupmod
-g, --gid GID 将组 ID 改为 GID
-h, --help 显示此帮助信息并推出
-n, --new-name NEW_GROUP 改名为 NEW_GROUP
-o, --non-unique 允许使用重复的 GID
-p, --password PASSWORD 将密码更改为(加密过的) PASSWORD
-R, --root CHROOT_DIR chroot 到的目录
参考博客:
https://blog.csdn.net/pshdhx/article/details/80737906
https://www.cnblogs.com/jackyyou/p/5498083.html