Linux 用户/用户组 管理(添加/删除)

增加一个新用户到附加用户组

新增加一个用户并将其列入一个已有的用户组中需要用到 useradd 命令。如果还没有这个用户组,可以先创建该用户组。

命令参数如下:

useradd -G {group-name} username

例如,我们要创建一个新用户 cnzhx 并将其添加到用户组 developers 中。首先需要以 root 用户身份登录到系统中。先确认一下是否存在 developers 这个用户组,在命令行输入:

 grep developers /etc/group

输出类似于:

developers:x:1124:

如果看不到任何输出,那么就需要先创建这个用户组了,使用 groupadd 命令:

groupadd developers

然后创建用户 cnzhx 并将其加入到 developers 用户组:

useradd -G developers cnzhx

为用户 cnzhx 设置密码:

passwd cnzhx

为确保已经将该用户正确的添加到 developers 用户组中,可以查看该用户的属性,使用 id 命令:

id cnzhx

输出类似于:

uid=1122(cnzhx) gid=1125(cnzhx) groups=1125(cnzhx),1124(developers)

前面命令中用到的大写的 G (-G) 参数就是为了将用户添加到一个附加用户组中,而同时还会为此用户创建一个属于他自己的新组 cnzhx。如果要将该用户同时增加到多个附加用户组中,可以使用英文半角的逗号来分隔多个附加组名(不要加空格)。例如,同时将 cnzhx 增加到 admins, ftp, www, 和 developers 用户组中,可以输入以下命令:

useradd -G admins,ftp,www,developers cnzhx

管理用户组(group)的工具或命令

  • groupadd 注:添加用户组;
  • groupdel 注:删除用户组;
  • groupmod 注:修改用户组信息
  • groups 注:显示用户所属的用户组
  • grpck 注:grpck命令用于验证组文件的完整性,在验证之前,需要先锁定(lock)组文件/etc/group和/etc/shadow
  • grpconv 注:通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建;
  • grpunconv 注:通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件;

管理用户(user)的工具或命令

  • useradd 注:添加用户
  • passwd 注:为用户设置密码
  • usermod 注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;
  • pwck 注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;
  • pwunconv 注:是pwcov 的立逆向操作,是从/etc/shadow和 /etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件;
  • finger 注:查看用户信息工具
  • id 注:查看用户的UID、GID及所归属的用户组
  • chfn 注:更改用户信息工具
  • su 注:用户切换工具
  • sudo 注:sudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo 能后面直接执行命令,比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现;
  • visudo 注:visodo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑 /etc/sudoers 的效果是一样的;
  • sudoedit 注:和sudo 功能差不多;
groupadd

groupadd命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。

  • 语法
    groupadd(选项)(参数)
    
  • 选项
    -g:指定新建工作组的id;
    -r:创建系统工作组,系统工作组的组ID小于500;
    -K:覆盖配置文件“/ect/login.defs”;
    -o:允许添加组ID号不唯一的工作组。
    
  • 参数
    组名:指定新建工作组的组名。
    
groupdel

groupdel命令用于删除指定的工作组,本命令要修改的系统文件包括/ect/group/ect/gshadow。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。

  • 语法
    groupdel(参数)
    
  • 参数
    组:要删除的工作组名。
    
groupmod

groupmod命令更改群组识别码或名称。需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作。

  • 语法
     groupmod(选项)(参数)
    
  • 选项
    -g<群组识别码>:设置欲使用的群组识别码;
    -o:重复使用群组识别码;
    -n<新群组名称>:设置欲使用的群组名称。
    
  • 参数
    组名:指定要修改的工作的组名。
    
groups

groups命令在标准输入输出上输出指定用户所在组的组成员,每个用户属于/etc/passwd中指定的一个组和在/etc/group中指定的其他组。

  • 语法
    groups(选项)(参数)
    
  • 选项
    -help:显示命令的帮助信息;
    --version:显示命令的版本信息。
    
  • 参数
    用户名:指定要打印所属工作组的用户名。
    
grpck

grpck命令用于验证组文件的完整性,在验证之前,需要先锁定(lock)组文件/etc/group/etc/shadow

grpck命令检查数据是否正确存放,每条记录是否都包含足够的信息,是否有一个唯一的组名,是否包含正确的用户,是否正确设置了组的管理员等。grpck检查发现错误以后,在命令行提示用户是否删除错误的记录。如果用户没有明确回答删除记录,grpck终止运行。

  • 语法
    grpck(选项)
    
  • 选项
    -r:只读模式;
    -s:排序组id。
    
grpconv

grpconv命令用来开启群组的投影密码。Linux系统里的用户和群组密码,分别存放在/etc目录下的passwdgroup文件中。因系统运作所需,任何人都得以读取它们,造成安全上的破绽。投影密码将文件内的密码改存在/etc目录下的shadowgshadow文件内,只允许系统管理者读取,同时把原密码置换为"x"字符。投影密码的功能可随时开启或关闭,您只需执行grpconv指令就能开启群组投影密码。

  • 语法
    grpconv
    
grpunconv

grpunconv命令用来关闭群组的投影密码。它会把密码从gshadow文件内,回存到group文件里。

  • 语法
    grpunconv
    
useradd

useradd命令用于Linux中创建的新的系统用户。useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。

在Slackware中,adduser指令是个script程序,利用交谈的方式取得输入的用户帐号资料,然后再交由真正建立帐号的useradd命令建立新用户,如此可方便管理员建立用户帐号。在Red Hat Linux中,adduser命令则是useradd命令的符号连接,两者实际上是同一个指令

  • 语法
    useradd(选项)(参数)
    
  • 选项
    -c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中;
    -d<登入目录>:指定用户登入时的启始目录;
    -D:变更预设值;
    -e<有效期限>:指定帐号的有效期限;
    -f<缓冲天数>:指定在密码过期后多少天即关闭该帐号;
    -g<群组>:指定用户所属的群组;
    -G<群组>:指定用户所属的附加群组;
    -m:自动建立用户的登入目录;
    -M:不要自动建立用户的登入目录;
    -n:取消建立以用户名称为名的群组;
    -r:建立系统帐号;
    -s<shell>:指定用户登入后所使用的shell;
    -u<uid>:指定用户id。
    
  • 参数
    用户名:要创建的用户名。
    
passwd

passwd命令用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。

  • 语法
    passwd(选项)(参数)
    
  • 选项
    -d:删除密码,仅有系统管理者才能使用;
    -f:强制执行;
    -k:设置只有在密码过期失效后,方能更新;
    -l:锁住密码;
    -s:列出密码的相关信息,仅有系统管理者才能使用;
    -u:解开已上锁的帐号。
    
  • 参数
    用户名:需要设置密码的用户名。
    
usermod

usermod命令用于修改用户的基本信息。usermod命令不允许你改变正在线上的使用者帐号名称。当usermod命令用来改变user id,必须确认这名user没在电脑上执行任何程序。你需手动更改使用者的crontab档。也需手动更改使用者的at工作档。采用NIS server须在server上更动相关的NIS设定。

  • 语法
    usermod(选项)(参数)
    
  • 选项
    -c<备注>:修改用户帐号的备注文字;
    -d<登入目录>:修改用户登入时的目录;
    -e<有效期限>:修改帐号的有效期限;
    -f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;
    -g<群组>:修改用户所属的群组;
    -G<群组>;修改用户所属的附加群组;
    -l<帐号名称>:修改用户帐号名称;
    -L:锁定用户密码,使密码无效;
    -s<shell>:修改用户登入后所使用的shell;
    -u<uid>:修改用户ID;
    -U:解除密码锁定。
    
  • 参数
    登录名:指定要修改信息的用户登录名。
    
pwck

pwck命令用来验证系统认证文件/etc/passwd/etc/shadow的内容和格式的完整性。

  • 语法
    pwck(选项)(参数)
    
  • 选项
    -q:仅报告错误信息;
    -s:以用户id排序文件“/etc/passwd”和“/etc/shadow”;
    -r:只读方式运行指令。
    
  • 参数
    密码文件:指定密码文件的路径;
    影子文件:指定影子文件的路径。
    
pwunconv

pwunconv命令与pwconv功能相反,用来关闭用户的投影密码。它会把密码从shadow文件内,重回存到passwd文件里。

  • 语法
    pwunconv
    
finger

finger命令用于查找并显示用户信息。包括本地与远端主机的用户皆可,帐号名称没有大小写的差别。单独执行finger指令,它会显示本地主机现在所有的用户的登陆信息,包括帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话。

  • 语法
    finger(选项)(参数)
    
  • 选项
    -l:列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,还有计划文件和方案文件内容;
    -m:排除查找用户的真实姓名;
    -s:列出该用户的帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话;
    -p:列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,但不显示该用户的计划文件和方案文件内容。
    

不指定finger的选项如果提供操作者的话,缺省设为-l输出风格,否则为-s风格,注意在两种格式中,如果信息不足,都有一些域可能丢失,如果没有指定参数finger会为当前登录的每个用户打印一个条目。

  • 参数
    用户名:指定要查询信息的用户。
    
id

id命令可以显示真实有效的用户ID(UID)和组ID(GID)。UID 是对一个用户的单一身份标识。组ID(GID)则对应多个UID。id命令已经默认预装在大多数Linux系统中。要使用它,只需要在你的控制台输入id。不带选项输入id会显示如下。结果会使用活跃用户。

当我们想知道某个用户的UID和GID时id命令是非常有用的。一些程序可能需要UID/GID来运行。id使我们更加容易地找出用户的UID以GID而不必在/etc/group文件中搜寻。如往常一样,你可以在控制台输入man id进入id的手册页来获取更多的详情。

  • 语法
    id [-gGnru][--help][--version][用户名称]
    
  • 选项
    -g或--group   显示用户所属群组的ID。
    -G或--groups   显示用户所属附加群组的ID。
    -n或--name    显示用户,所属群组或附加群组的名称。
    -r或--real    显示实际ID。
    -u或--user    显示用户ID。
    -help         显示帮助。
    -version      显示版本信息。
    
chfn

chfn命令用来改变finger命令显示的信息。这些信息都存放在/etc目录里的passwd文件里。若不指定任何选项,则chfn命令会进入问答式界面。

  • 语法
    chfn(选项)(参数)
    
  • 选项
    -f<真实姓名>或--full-name<真实姓名>:设置真实姓名;
    -h<家中电话>或--home-phone<家中电话>:设置家中的电话号码;
    -o<办公地址>或--office<办公地址>:设置办公室的地址;
    -p<办公电话>或--office-phone<办公电话>:设置办公室的电话号码;
    -u或--help:在线帮助;
    -v或-version:显示版本信息。
    
  • 参数
    用户名:指定要改变finger信息的用户名。
    
su

su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。

  • 语法
    su(选项)(参数)
    
  • 选项
    -c<指令>或--command=<指令>:执行完指定的指令后,即恢复原来的身份;
    -f或——fast:适用于csh与tsch,使shell不用去读取启动文件;
    -l或——login:改变身份时,也同时变更工作目录,以及HOME,SHELL,USER,logname。此外,也会变更PATH变量;
    -m,-p或--preserve-environment:变更身份时,不要变更环境变量;
    -s<shell>或--shell=<shell>:指定要执行的shell;
    --help:显示帮助;
    --version;显示版本信息。
    
  • 参数
    用户:指定要切换身份的目标用户。
    
sudo

sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。

  • 语法
    sudo(选项)(参数)
    
  • 选项
    -b:在后台执行指令;
    -h:显示帮助;
    -H:将HOME环境变量设为新身份的HOME环境变量;
    -k:结束密码的有效期限,也就是下次再执行sudo时便需要输入密码;。
    -l:列出目前用户可执行与无法执行的指令;
    -p:改变询问密码的提示符号;
    -s<shell>:执行指定的shell;
    -u<用户>:以指定的用户作为新的身份。若不加上此参数,则预设以root作为新的身份;
    -v:延长密码有效期限5分钟;
    -V :显示版本信息。
    
  • 参数
    指令:需要运行的指令和对应的参数。
    

与用户(user)和用户组(group)相关的配置文件;

  • 与用户(user)相关的配置文件;

    /etc/passwd 注:用户(user)的配置文件;
    /etc/shadow 注:用户(user)影子口令文件;
    
  • 与用户组(group)相关的配置文件;

    /etc/group 注:用户组(group)配置文件;
    /etc/gshadow 注:用户组(group)的影子文件; 
    

附录

鸟哥的 Linux 私房菜 – 基础学习篇目录
Linux 帳號管理與 ACL 權限設定
Linux命令大全

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值