Linux 用户识别码: UID 与 GID
Linux 的每一个文件都会有所谓的拥有者 ID 与拥有群组 ID ,当我们有要显示文件属性的需求时,系统会依据 /etc/passwd 与 /etc/group 的内容, 找到 UID / GID 对应的帐号与群组名称再显示出来。
# UID 的帐号的保存在 /etc/passwd
# 展示 UID 信息
head -n 20 /etc/passwd
# 输出信息
root:*:0:0:System Administrator:/var/root:/bin/sh
每一行使用“:”分隔开,1.帐号名称:2.密码,保存在 /etc/gshadow :3.UID:4.GID:5.使用者信息说明栏:6.主文件夹,默认的使用者主文件夹在 /home/yourIDname
# GID 的用户组信息的保存在 /etc/group
# 展示 GID 信息
head -n 20 /etc/group
# 输出信息
root:x:0:
每一行使用“:”分隔开,1.群组名称:2.群组密码,保存在 /etc/gshadow :3.GID,群组的 ID:4.此群组支持的帐号名称
Linux 新增与删除用户
创建用户,创建用户名和密码。命令如下:
- useradd
[root@hwsrv-965201 ~]# useradd -help
用法:useradd [选项] 登录
useradd -D
useradd -D [选项]
选项:
-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 到的目录
-P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files
-s, --shell SHELL 新账户的登录 shell
-u, --uid UID 新账户的用户 ID
-U, --user-group 创建与用户同名的组
-Z, --selinux-user SEUSER 为 SELinux 用户映射使用指定 SEUSER
# 默认创建一个用户
[root@hwsrv-965201 ~]# useradd Jane
[root@hwsrv-965201 ~]# ll -d /home/Jane
drwx------ 2 Jane Jane 4096 6月 15 08:45 /home/Jane # 默认会创建使用者主文件夹,且权限为 700 !这是重点!
- passwd 使用 useradd 创建了帐号之后,需要设置新密码,账户才能正常使用。
[root@hwsrv-965201 ~]# passwd --help
用法: passwd [选项...] <帐号名称>
-k, --keep-tokens 保持身份验证令牌不过期
-d, --delete 删除已命名帐号的密码(只有根用户才能进行此操作)
-l, --lock 锁定指名帐户的密码(仅限 root 用户)
-u, --unlock 解锁指名账户的密码(仅限 root 用户)
-e, --expire 终止指名帐户的密码(仅限 root 用户)
-f, --force 强制执行操作
-x, --maximum=DAYS 密码的最长有效时限(只有根用户才能进行此操作)
-n, --minimum=DAYS 密码的最短有效时限(只有根用户才能进行此操作)
-w, --warning=DAYS 在密码过期前多少天开始提醒用户(只有根用户才能进行此操作)
-i, --inactive=DAYS 当密码过期后经过多少天该帐号会被禁用(只有根用户才能进行此操作)
-S, --status 报告已命名帐号的密码状态(只有根用户才能进行此操作)
--stdin 从标准输入读取令牌(只有根用户才能进行此操作)
Help options:
-?, --help Show this help message
--usage Display brief usage message
# 1. root 给予 Jane 密码
[root@hwsrv-965201 ~]# passwd Jane
更改用户 Jane 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
# 2. 自己修改自己的密码
[Jane@hwsrv-965201 ~]$ passwd
更改用户 Jane 的密码 。
为 Jane 更改 STRESS 密码。
(当前)UNIX 密码:
新的 密码:
无效的密码: 密码与原来的太相似
新的 密码:
无效的密码: 密码与原来的太相似
新的 密码:
- userdel root 删除用户的的相关数据,包括:帐号/密码相关参数:/etc/passwd, /etc/shadow;群组相关参数:/etc/group, /etc/gshadow;文件数据: /home/username, /var/spool/mail/username..等等
用法:userdel [选项] 登录
选项:
-f, --force force some actions that would fail otherwise
e.g. removal of user still logged in
or files, even if not owned by the user
-h, --help 显示此帮助信息并推出
-r, --remove 删除主目录和邮件池
-R, --root CHROOT_DIR chroot 到的目录
-P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files
-Z, --selinux-user 为用户删除所有的 SELinux 用户映射
# root 删除用户
[root@hwsrv-965201 home]# userdel -r Jane
- sudo
sudo 可以让普通用户切换身份来进行某项任务,以“ sudo 指令 ”执行 root 的指令串,由于 sudo 需要事先设置妥当,且 sudo 需要输入使用者自己的密码, 因此多人共管同一部主机时, sudo 要比 su 来的好喔!至少 root 密码不会流出去。
要使用 sudo 执行属于 root 的权限指令,则 root 需要先使用 visudo 去修改 /etc/sudoers
[root@localhost home]# visudo
# 在 root 账号下添加 新的用户
root ALL=(ALL) ALL
aos ALL=(ALL) ALL
……
上面没列的意思:
- “使用者帐号”:系统的哪个帐号可以使用 sudo 这个指令的意思;
- “登陆者的来源主机名称”:当这个帐号由哪部主机连线到本 Linux 主机,意思是这个帐号可能是由哪一部网络主机连线过来的, 这个设置值可以指定用户端计算机(信任的来源的意思)。默认值 root 可来自任何一部网络主机
- “(可切换的身份)”:这个帐号可以切换成什么身份来下达后续的指令,默认 root 可以切换成任何人;
- “可下达的指令”:可用该身份下达什么指令?这个指令请务必使用绝对路径撰写。 默认 root 可以切换任何身份且进行任何指令之意