• {{ item.name }}
  • Home
  • Linux
  • Programming
    • Python
  • Life
  • Other
  • Tools
  • 投资者该如何参与优秀的区块链项目- NuLink社区圆桌会议
  • 什么是NuLink?- 项目中文社区与项目研究组成员 Rookie 对话实录
  • NuLink 融资 400 万美元用于开发隐私保护技术
  • NuLink的零知识证明介绍(1)
  • 用bitwarden_rs搭建属于自己的密码管理器
  • 修复 CentOS vps 网卡失效
  • 记录用mac给Nexus6P刷Android10的错误
  • Centos 6.8启用 TCP BBR拥塞控制算法
  • Nginx 启用HTTP2功能
  • Mac 安装adb工具
  • WordPress 默认编辑器代码按钮

Linux 用户和组的管理

  • iansiu
  • 2015-12-01
  • 0

一、useradd命令用来建立用户帐号和创建用户的起始目录,使用权限是root用户。

命令格式

useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name

主要参数

-c:加上备注文字,备注文字保存在passwd的备注栏中。
-d:指定用户登入时的启始目录。
-D:变更预设值。
-e:指定账号的有效期限,缺省表示永久有效。
-f:指定在密码过期后多少天即关闭该账号。
-g:指定用户所属的起始群组。
-G:指定用户所属的附加群组。
-m:自动建立用户的登入目录。
-M:不要自动建立用户的登入目录。
-n:取消建立以用户名称为名的群组。
-r:建立系统账号。
-s:指定用户登入后所使用的shell,可以登录是 /bin/bash 不可以登录 /sbin/nologin
-u:指定用户ID号。

说明

useradd可用来建立用户账号,他和adduser命令是相同的。账号建好之后,再用passwd设定账号的密码。使用useradd命令所建立的账号,实际上是保存在/etc/passwd文本文件中。

应用实例

1. 建立一个新用户账户,并设置ID:

useradd -u 544 123

需要说明的是,设定ID值时尽量要大于500,以免冲突。因为Linux安装后会建立一些特别用户,一般0到499之间的值留给bin、mail这样的系统账号。

如果不指定UID那么默认是从500开始的,不指定GID那么默认UID和GID是一样的,用户名和组名也是一样的。

useradd -g oinstall -G dba 456

新创建一个 456 用户,这初始属于oinstall组,且同时让他也属于dba组。

useradd -d /var/servlet/service -s /sbin/nologin tomcat

无法使用shell,且设置其home目录为/var/servlet/service

二、Linux usermod命令用于修改用户帐号,usermod可用来修改用户帐号的各项设定。

-a 把用户追加到某些组中,仅与-G选项一起使用
-c 修改/etc/passwd文件第五段comment
-d 修改用户的家目录通常和-m选项一起使用
-e 指定用户帐号禁用的日期,格式YY-MM-DD
-f 用户密码过期多少天后采用就禁用该帐号,0表示密码已过期就禁用帐号,-1表示禁用此功能,默认值是-1
-g 修改用户的gid,改组一定存在
-G 把用户追加到某些组中,仅与-a选项一起使用
-l 修改用户的登录名称
-L 锁定用户的密码
-m 移除用户的家目录通常和-d选项一起使用
-s 修改用户的shell
-u 修改用户的uid,该uid必须唯一
-U 解锁用户的密码
-p 修改用户密码

注意:

1. usermod不允许你改变正在线上的使用者帐号名称。当usermod用来改变userID,必须确认这名user没在电脑上执行任何程序
2. 不要使用 -p 选项修改密码,因为密码会以明文方式显示在 /etc/shadows 文件里

应用实例:

1. 新建用户test,密码test,另外添加usertest组

useradd test 
echo "test" | passwd --stdin test 

2. 把test用户加入usertest组

usermod -aG usertest test 多个组之间用空格隔开 

查看:

id test
uid=500(test) gid=500(test) groups=500(test),501(usertest) 

3. 修改test用户的家目录

usermod -md /home/usertest 

4. 删除附加群组

usermod -G "" username

三、userdel 命令可以删除系统上的用户

如:

userdel 123

加上 -r 选项可以在删除用户的同时顺便把home目录也删除掉,是个危险的选项,因此默认userdel不会删除用户的home目录

四、passwd 用户口令管理命令

语法

passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]

必要参数:

-d 删除密码
-f 强制执行
-k 更新只能发送在过期之后
-l 停止账号使用
-S 显示密码信息
-u 启用已被停止的账户
-x 设置密码的有效期
-g 修改群组密码
-i 过期后停止用户账号

应用实例

1. 修改用户密码

passwd 123  //设置123用户的密码

输出:

Enter new UNIX password:  //输入新密码,输入的密码无回显
Retype new UNIX password:  //确认密码
passwd: password updated successfully

2. 显示账号密码信息

passwd -S 123

输出

123 P 05/13/2015 0 99999 7 -1

3. 删除用户密码

passwd -d lx138 

输出

passwd: password expiry information changed.

五、groupadd 创建一个新的用户组

语法

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

选项

-g gid:除非使用-o参数不然该值必须是唯一,不可相同。数值不可为负。
-o:允许设置相同组id的群组
-r:建立系统组
-f:强制执行,默认是不允许创建相同id的组的,使用此参数就可以,而且不用-o选项。

应用实例

1. 添加一个组

groupadd 123

2. 添加组并指定gid

groupadd -g 550 123

六、groupmod 用户组修改命令

用法:

groupmod [-g gid [-o]] [-n group_name] group

参数:

-g: gid:指定id
-o:与groupadd相同
-n: group_name:修改用户组名为group_name

七、groupdel 命令删除用户组

用法:

groupdel group

说明:删除用户组时,用户组必须存在,如果有组中的任一用户在使用中的话,则不能删除。

© 2025 laowang's blog
Theme by Wing