• 用户管理命令


    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

  • 相关阅读:
    Timestamp,Date和String的互相转换
    从网址截取域名
    $.ajax()方法详解
    JS正则表达式详解
    List、Set、Map集合的遍历方法
    spring-security2配置精讲(转载)
    spring-security原理学习
    spring-security配置和原理简介
    三步法搞定CTF中的SQL注入题型
    两个局域网(办公网-IDC)安全互通方案2:by GRE and linux server&深入理解GRE
  • 原文地址:https://www.cnblogs.com/heartchord/p/5103369.html
Copyright © 2020-2023  润新知