用户管理命令

sudoers文件


• 文件作用

       sudo是一个系统管理员允许普通用户执行root级别命令(halt,reboot,su等等)的工具。使用sudo不仅可以减少root用户登陆次数和管理时间,还提高了系统的安全性。

       sudo工具对应的配置文件是sudoers文件,它允许系统管理员集中地管理用户的权限,该文件所存放的默认位置是/etc/sudoers

• 文件使用

       当执行命令的时候,如果系统提示:xxx is not in the sudoers file.  This incident will be reported.(xxx不在sudoers文件中。此事将被报告。),解决方法如下:

       ▶ 进入超级用户root:su -
       ▶ 添加文件写权限:chmod u+w /etc/sudoers
       ▶ 编辑/etc/sudoers文件,在root ALL=(ALL) ALL下面添加:xxx ALL=(ALL) ALL
       ▶ 撤销文件写权限:chmod u-w /etc/sudoers

配置文件


• /etc/passwd

▶ 文件作用

       /etc/passwd文件是系统的主要文件之一。/etc/passwd是用户数据库,该文件中包含了所有用户登录名清单;为所有用户指定了主目录;在登录时使用的shell程序名称;该文件还保存了用户口令;给每个用户提供系统识别号。其中密码是以加密形式存储的。

▶ 文件说明

       /etc/passwd文件是一个纯文本文件,每行采用了相同的格式:
       username:password:uid:gid:comment:home:shell

       root:x:0:0:root:/root:/bin/bash
       bin:x:1:1:bin:/bin:/sbin/nologin
       daemon:x:2:2:daemon:/sbin:/sbin/nologin
       adm:x:3:4:adm:/var/adm:/sbin/nologin
       lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
       sync:x:5:0:sync:/sbin:/bin/sync
       shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
       halt:x:7:0:halt:/sbin:/sbin/halt
       mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
       uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
       operator:x:11:0:operator:/root:/sbin/nologin
       games:x:12:100:games:/usr/games:/sbin/nologin
       gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
       ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
       nobody:x:99:99:Nobody:/:/sbin/nologin
       dbus:x:81:81:System message bus:/:/sbin/nologin
       rpc:x:32:32:Rpcbind Daemon:/var/cache/rpcbind:/sbin/nologin
       vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
       saslauth:x:499:76:"Saslauthd user":/var/empty/saslauth:/sbin/nologin
       postfix:x:89:89::/var/spool/postfix:/sbin/nologin
       haldaemon:x:68:68:HAL daemon:/:/sbin/nologin
       ntp:x:38:38::/etc/ntp:/sbin/nologin
       amandabackup:x:33:6:Amanda user:/var/lib/amanda:/bin/bash
       apache:x:48:48:Apache:/var/www:/sbin/nologin
       abrt:x:173:173::/etc/abrt:/sbin/nologin
       rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
       nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
       sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
       tcpdump:x:72:72::/:/sbin/nologin
       lyb:x:500:500::/home/lyb/:/bin/bash

▶ 常用技巧

       √ 统计所有用户wc -l /etc/passwd

• /etc/shadow

▶ 文件作用

       影子口令文件将/etc/passwd文件中的加密口令移动到/etc/shadow中,而后者只对超级用户root可读。这使破译口令更困难,以此增加系统的安全性。

▶ 文件说明

       /etc/shadow文件中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用冒号隔开:

       登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志

       root:$6$z/oBs2l65Pr3R.OX$ElYgRH4VjYkotWRhBgrdG5x0/If6Qdwsyj8JZcisYKMPSdPrW3sDC0v8RITzI
       KTb52Bz.KgwSDbizLy7Vapg40:15810:0:99999:7:::
       bin:*:15628:0:99999:7:::
       daemon:*:15628:0:99999:7:::
       adm:*:15628:0:99999:7:::
       lp:*:15628:0:99999:7:::
       sync:*:15628:0:99999:7:::
       shutdown:*:15628:0:99999:7:::
       halt:*:15628:0:99999:7:::
       mail:*:15628:0:99999:7:::
       uucp:*:15628:0:99999:7:::
       operator:*:15628:0:99999:7:::
       games:*:15628:0:99999:7:::
       gopher:*:15628:0:99999:7:::
       ftp:*:15628:0:99999:7:::
       nobody:*:15628:0:99999:7:::
       dbus:!!:15810::::::
       rpc:!!:15810:0:99999:7:::
       vcsa:!!:15810::::::
       saslauth:!!:15810::::::
       postfix:!!:15810::::::
       haldaemon:!!:15810::::::
       ntp:!!:15810::::::
       amandabackup:!!:15810::::::
       apache:!!:15810::::::
       abrt:!!:15810::::::
       rpcuser:!!:15810::::::
       nfsnobody:!!:15810::::::
       sshd:!!:15810::::::
       tcpdump:!!:15810::::::
       lyb:$6$iMpVCch/$25S4TQJFZSCEMmvq/qWncPSx3Mb2i6ln/oJnlG/dypYVP7u7QEKlmeSv6nup96Cd4T2Vw6
       qWFeEW9ZaoV07/c0:15846:0:99999:7:::

• /etc/group

▶ 文件作用

       用户组的所有信息都存放在/etc/group文件中。将用户分组是Linux系统中对用户进行管理及控制访问权限的一种手段。每个用户都属于某个用户组;一个组中可以有多个用户,一个用户也可以属于不同的组。当一个用户同时是多个组中的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的默认组,而其他组称为附加组。用户要访问属于附加组的文件时,必须首先使用newgrp命令使自己成为所要访问的组中的成员。

▶ 文件说明

       它的文件格式与/etc/passwd类似,由若干个字段组成,字段之间用冒号隔开:

       组名:口令:组标识号:组内用户列表

       root:x:0:
       bin:x:1:bin,daemon
       daemon:x:2:bin,daemon
       sys:x:3:bin,adm
       adm:x:4:adm,daemon
       tty:x:5:
       disk:x:6:
       lp:x:7:daemon
       mem:x:8:
       kmem:x:9:
       wheel:x:10:
       mail:x:12:mail,postfix
       uucp:x:14:
       man:x:15:
       games:x:20:
       gopher:x:30:
       video:x:39:
       dip:x:40:
       ftp:x:50:
       lock:x:54:
       audio:x:63:
       nobody:x:99:
       users:x:100:
       dbus:x:81:
       utmp:x:22:
       utempter:x:35:
       rpc:x:32:
       floppy:x:19:
       vcsa:x:69:
       cdrom:x:11:
       tape:x:33:amandabackup
       dialout:x:18:
       cgred:x:499:
       saslauth:x:76:
       postdrop:x:90:
       postfix:x:89:
       haldaemon:x:68:haldaemon
       stapusr:x:156:
       stapsys:x:157:
       stapdev:x:158:
       ntp:x:38:
       apache:x:48:
       abrt:x:173:
       rpcuser:x:29:
       nfsnobody:x:65534:
       sshd:x:74:
       tcpdump:x:72:

常用命令


groupadd

▶ 命令描述

       创建一个新的用户群组。

▶ 命令格式

       groupadd [-g gid [-o]] [-r] [-f] groupname

▶ 常用选项

       -g gid : 指定新的用户组id,该值必须唯一(除非启用-o选项)且非负。系统默认gid必须大于等于GID_MIN设定的值。

       -r        : 创建一个系统用户组。

       -f        : 如果新增一个已存在用户组,命令将正常结束。当和-g选项使用时,如果指定的gid已被使用,那么系统会自动选择一个唯一的gid

==========================================================================

groupdel

▶ 命令描述

       删除一个用户群组。

▶ 命令格式

       groupdel groupname

==========================================================================

groupmod

▶ 命令描述

       修改用户群组属性。

▶ 命令格式

       groupmod [-g gid [-o]] [-n new_groupname] groupname

▶ 常用选项

       -g : 将用户组id修改为新的用户组id,gid必须唯一(除非启用-o选项)且非负。

       -n : 将用户组名从groupname修改为new_groupname

==========================================================================

useradd

▶ 命令描述

       创建一个新的用户账户。

▶ 命令格式

       useradd [-b base_dir] [-c comment] [-d home_dir] [-e expire_date] [-f inactive] [-g group] [-k skel_dir] [-l] [-m] [-o] [-p password] [-r] [-s shell] [-u uid] [-G groups] [-K key=value] [-M] [-N] [-R CHROOT_DIR] [-U] [-Z seuser] user_name

▶ 常用选项

       -b base_dir          : 指定新账户主目录的基目录。如果未使用-d选项,则使用默认的基目录,否则base_dir加上账户名将作为主目录。如果没有使用-m选项,那么该目录必须已经存在。

       -c comment        : 关于登录的简短描述,即/etc/passwd文件中的GECOS字段

       -d home_dir        : 指定用户登入时的主目录,默认是base_dir加上账户名作为登录主目录。

       -e expire_date     : 指定用户账户过期的日期,日期以YYYY-MM-DD格式指定,缺省表示永久不过期。

       -f inactive            : 指定账户密码过期后到彻底禁用之前的天数。0表示密码过期时,立即禁用账户;-1表示禁用该功能。

       -g group             : 指定用户初始登陆组的组名或组id,该用户组必须已经存在。

       -k skel_dir           : 骨架目录,其中包含了创建用户时要拷贝到用户主目录中的文件和目录,该选项只有在指定-m选项时才有效。

       -l                         : 不将用户添加到最近登录和登录失败数据库中。

       -m                       : 如果不存在,则创建用户主目录,骨架目录中的文件和目录将会复制到主目录中。

       -o                        : 允许创建重复uid的用户账户,此选项只有和-u选项组合使用才有效。

       -p password        : 指定新账户加密后的密码,默认为禁用密码。

       -r                         : 创建一个系统账户。

       -s shell                : 指定用户登入shell。默认让系统根据/etc/default/useradd中的SHELL变量选择默认的登录shell。

       -u uid                  : 指定uid值。此值必须唯一且非负,除非使用-o选项。

       -G groups           : 指定用户属于的附加组列表,附加组之间使用逗号分隔,这些组需要遵守与-g选项同样的限制。默认用户只属于初始组。

       -K key=value      : 默认覆盖/etc/login.defs预设值。

       -N                       : 不要创建与用户同名组,而是将用户添加到-g选项指定的组,或根据/etc/default/useradd中的GROUP变量指定的组。
       -R CHROOT_DIR : 将改动应用于CHROOT_DIR目录,并使用CHROOT_DIR目录下的配置文件。

       -U                       : 创建一个和用户名一样的用户组,并将用户添加到组中。

       -Z seuser            : 指定用户登陆的SELinux用户,默认为空,则系统选择默认的SELinux用户。

==========================================================================

userdel

▶ 命令描述

       修改系统账户文件,删除与账户名登录相关的所有项目,给出的账户名必须存在。userdel命令可以用来删除用户帐号和用户的起始目录。

▶ 命令格式

       userdel [-f] [-r] [-Z] [-R CHROOT_DIR] user_name

▶ 常用选项

       -f                         : 强制删除用户账户,即使该账户的用户仍然在登录状态。该选项同时删除账户的主目录和邮箱。如果/etc/login.defs中的USERGROUPS_ENAB定义为yes,并且如果有一个和用户同名的组,也会删除此组,即使它仍然是别的用户的主组。 注意:此选项危险,可能会破坏系统的稳定性。

       -r                         : 用户主目录中的文件将随用户主目录和邮箱一起删除,而在其它文件系统中的文件必须手动搜索并删除。

       -z                        : 移除登录用户的所有SELinux用户映射。

       -R CHROOT_DIR : 将改动应用于CHROOT_DIR目录,并使用CHROOT_DIR目录下的配置文件。

==========================================================================

usermod

▶ 命令描述

       usermod命令用来修改用户账户相关的各项设定。

▶ 命令格式

       usermod [-a] [-c comment] [-d home_dir] [-e expire_date] [-f inactive] [-g group] [-l new_username] [-m] [-o] [-p password] [-s shell] [-u uid] [-G groups] [-L] [-R CHROOT_DIR] [-U] [-Z seuser] username

▶ 常用选项

       -a                         : 将用户添加到附加组,该选项只能和-G选项一起使用。

       -c comment         : 修改用户密码文件中注释字段值,即/etc/passwd文件中的GECOS字段。

       -d home_dir         : 修改用户登录的新目录。如果指定了-m选项,当前主目录内容将会迁移到新主目录中,如果不存在,则创建目录。

       -e expire_date      : 指定账户过期的日期。日期以YYYY-MM-DD格式指定,缺省则表示永久不过期。

       -f inactive             : 指定账户密码过期后到彻底禁用之前的天数。0表示密码过期时,立即禁用账户;-1表示不使用该功能。

       -g group              : 指定用户新的初始登录组的组名或gid,此组必须存在。用户主目录中,属于原来主组的文件将转交给新组所有,主目录之外的文件所属的组必须手动修改。

       -l new_username : 将用户登陆名从usernamenew_username。用户的主目录名和邮件需要手动修改来和新登录名对应。

       -m                        : 将用户的主目录移动到新位置,该选项只和-d选项组合使用时才有效。

       -o                         : 与-u选项一起使用时,可以将用户id改为非唯一的值。

       -p password         : 修改用户密码。

       -s shell                 : 修改用户登录shell,如果将此字段设置为空,则选择系统默认的登录shell。

       -u uid                   : 修改用户id为新值。

       -G groups            : 修改用户属于的附加组列表,附加组之间使用逗号分隔,这些组需要遵守与-g选项同样的限制。如果用户当前是一个组的成员,而这个组没有列出,用户将被从那个组里删除。

       -L                         : 锁定用户密码。

       -R CHROOT_DIR  : 将改动应用于CHROOT_DIR目录,并使用CHROOT_DIR目录下的配置文件。

       -U                        : 解锁用户密码。

       -Z seuser             : 修改用户登陆的SELinux用户,空的SELinux将移除用户登录的SELinux用户映射。

==========================================================================

passwd

▶ 命令描述

       passwd命令用来更新用户的身份验证令牌。

▶ 命令格式

       passwd [-d] [-e] [-f] [-k] [-l] [-u] [ [-i] [-n] [-w] [-x] days ] [-S] [--stdin] username

▶ 常用选项

       -d         : 删除指定账户的密码,只有根用户才能进行此操作。

       -e         : 让指定账户的用户密码过期,只有根用户才能进行此操作。

       -f          : 强制执行操作。

       -k         : 该选项指定只对已过期的用户密码进行更新操作,用户可能希望重新生效的密码与之前密码一致。

       -l          : 锁定指定账户的用户密码,只有根用户才能进行此操作。

       -u         : 解锁指定账户的用户密码,只有根用户才能进行此操作。

       -S         : 输出指定帐号的密码状态的简要信息,只有根用户才能进行此操作。

       -i days  : 在密码过期后经过多少天该帐号会被禁用,只有根用户才能进行此操作。

       -n days : 密码的最短有效时限,以天为单位,只有根用户才能进行此操作。

       -w days : 密码的最长有效时限,以天为单位,只有根用户才能进行此操作。

       -x days  : 在密码过期前多少天开始提醒用户,只有根用户才能进行此操作。

       --stdin  : 从标准输入读取令牌。

==========================================================================

id

▶ 命令描述

       显示指定用户或当前用户(未指定用户时)的用户与组信息。

▶ 命令格式

       id [-a] [-g] [-n] [-r] [-u] [-Z] [-G] username

▶ 常用选项

       -a : 忽略其他版本的兼容性。

       -g : 仅显示有效的用户组id。

       -n : 显示组名称而非数字。

       -r : 显示真实id而非有效id。

       -u : 仅显示有效用户id。

       -Z : 仅显示当前用户的安全环境。

       -G : 显示所有用户组的id。

==========================================================================

who

▶ 命令描述

       显示当前已登录的用户信息。如果文件未被指定,将使用/var/run/utmp文件。

       who am iwhoami命令的区别在于:who am i命令显示的是实际用户id,即用户登陆时候的用户id;whoami命令显示的是有效用户id。进一步说who am i命令显示的是切换用户前的实际登陆用户id,whoami是切换后的有效的用户id。

▶ 命令格式

       who [-a] [-b] [-d] [-l] [-m] [-p] [-q] [-r] [-s] [-t] [-u] [-w] [-H] [-T] [--lookup] [--message] [--writable] [file | arg1 arg2]

▶ 常用选项

       -a                : 等同于-b -d --login -p -r -t -T -u选项组合。
       -b               : 上次系统启动时间。
       -d               : 显示已死进程的信息。
       -l                : 显示系统登录进程信息。
       -m              : 只显示主机名和标准输入相关的用户。
       -p               : 显示由init进程衍生的活动进程。
       -q               : 列出所有已登录用户的登录名与用户数量。
       -r                : 显示当前的运行级别。
       -s                : 显示名称、线路和时间(默认)。
       -t                : 显示上次系统时钟更改时间。
       -u               : 列出已登录的用户。
       -w              : 用+,- 或 ? 标注用户消息状态。
       -H              : 输出标题列。
       -T               : 用+,- 或 ? 标注用户消息状态。
       --lookup    : 尝试通过DNS查验主机名。
       --message : 等同于-T。
       --writable  : 等同于-T。

==========================================================================

whoami

▶ 命令描述

       显示与当前的有效用户id相关联的用户名,与id -un命令作用相同。

▶ 命令格式

       whoami

==========================================================================

pwck

▶ 命令描述

       pwck命令将检查用户及其认证信息的完整性,它将检查/etc/passwd/etc/shadow文件的格式是否正确、数据是否有效。命令将会提示用户删除格式不正确或有其它错误的项的信息。

▶ 命令格式

       pwck [-q] [-r] [-s] [ passwd  [shadow] ]

▶ 常用选项

       -q : 只显示错误信息,警告不显示。
       -s : 根据UID进行排序。
       -r : 只读方式执行命令。

==========================================================================

su

▶ 命令描述

       切换用户,可让一个普通用户切换为超级用户或其他用户,并可临时拥有所切换用户的权限,切换时需输入欲切换用户的密码;也可以让超级用户切换为普通用户,临时以低权限身份处理事务,切换时无需输入欲切换用户的密码。

       su    : 切换到root用户,不改变当前环境。
       su - : 切换到root用户,改变到root用户登陆环境。

▶ 命令格式

       su [-c command] [-f] [ [-g] [-Ggroupname ] [-m, -p] [-s shell] [-, -l] [ username [args ...] ]

▶ 常用选项

       -c command    : 将一个命令传递给shell执行。

       -f                      : 使shell不必读取启动文件,适用于csh和tsch。

       -g groupname : 指定主用户组。

       -G groupname指定辅助用户组。

       -m                    : 变更身份时,保留环境变量不变。

       -p                     : 变更身份时,保留环境变量不变。

       -s shell             : 运行指定的shell来代替当前的shell。

       -, -l                   : 使得切换用户后的shell环境是所切换用户的登陆shell。

==========================================================================

write

▶ 命令描述

       write命令用于向其他用户发送消息。

▶ 命令格式

       write username [tty]

▶ 常用选项

       tty : 指定登录用户的tty

原文地址:https://www.cnblogs.com/heartchord/p/5103369.html