关于linux增加用户和空间,请看:linux配置samba共享目录及权限_Rocket MAN的博客-CSDN博客_samba共享文件夹访问权限
adduser (推荐)和 useradd的说明文档
在系统中使用man useradd
查看帮助:
>USERADD(8) System Management Commands USERADD(8)
NAME
useradd - create a new user or update default new user information
SYNOPSIS
useradd [options] LOGIN
useradd -D
useradd -D [options] DESCRIPTION
useradd is a low level utility for adding users. On Debian, administrators should usually use adduser(8) instead.
#useradd是一个用于添加用户的低级实用程序。在Debian上,管理员通常应该改用adduser(8)
从文档中可以看出推荐在Debian系统上使用adduser
,而不是useradd
。
使用man adduser
查看文档
>ADDUSER(8) System Manager's Manual ADDUSER(8)
NAME
adduser, addgroup - add a user or group to the system
SYNOPSIS
adduser [options] [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID] [--firstuid ID] [--lastuid ID] [--ingroup GROUP | --gid ID] [--dis‐ abled-password] [--disabled-login] [--gecos GECOS] [--add_extra_groups] [--encrypt-home] user
adduser --system [options] [--home DIR] [--shell SHELL] [--no-create-home] [--uid ID] [--group | --ingroup GROUP | --gid ID] [--disabled-password] [--disabled-login] [--gecos GECOS] user
addgroup [options] [--gid ID] group
addgroup --system [options] [--gid ID] group
adduser [options] user group
COMMON OPTIONS
[--quiet] [--debug] [--force-badname] [--help|-h] [--version] [--conf FILE]
DESCRIPTION
adduser and addgroup add users and groups to the system according to command line options and configuration information in /etc/adduser.conf. They are friendlier front ends to the low level tools like useradd, groupadd and usermod programs, by default choosing Debian policy conformant UID and GID values, creating a home directory with skeletal configuration, running a custom script, and other features. adduser and addgroup can be run in one of five modes:
#添加用户 以及 添加组 添加 用户 并根据/etc/adduser.conf中的命令行选项和配置信息对系统进行分组。默认情况下,它们是useradd、groupadd和usermod程序等低级工具的友好前端 德比安 政策 符合的 UID编号 和GID值,创建具有骨架配置的主目录,运行自定义脚本和其他功能。 adduser和addgroup可以 以五种模式之一运行:
可以看出adduser
的参数更全面,更好用。
顺便提一下,如果想为一个系统服务创建专门的用户,比如说为hadoop服务创建一个专门的hadoop用户用来运行相关程序,这时候可以使用如下命令:
adduser --system hadoop
使用--system
创建的是系统用户,系统用户默认的shell是/usr/sbin/nologin
,这个shell禁止登录,只能运行程序,所以非常安全。
本地用户想要切换到系统用户可以使用如下命令:
su - hadoop -s /bin/bash
现在就切换到bash,可以正常运行了。
添加用户
使用adduser 添加用户
参数说明
-ingroup 指定已存在的用户组,在 linux - adduser: Specify only one name in this mode - Unix & Linux Stack Exchange中已经说明,使用ingroup可以创建成功
liuyan@ubuntu:~$ sudo adduser -ingroup mbb-sw3 hzq
Adding user `hzq' ...
Adding new user `hzq' (1039) with group `mbb-sw3' ...
Creating home directory `/home/hzq' ...
Copying files from `/etc/skel' ...
no talloc stackframe at ../source3/param/loadparm.c:4864, leaking memory
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for hzq
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
liuyan@ubuntu:~$
adduser与useradd的异同
adduser这种方式会同时创建/home/username。另一种方式useradd不会创建/home/username
删除用户
userdel -r username
其中-r表示同时删除/home/username,否则,是无法删除/home/username的
修改用户
修改账号名称,修改该passwd中主目录,更新当前主目录目录名
sudo usermod -d /newHome/user -m user
-d
或 --home
选项用于更改用户的主目录
-m 参数表示移动用户当前主目录中的文件到新的主目录。
sudo usermod -l newuser olduser
-l
或 --login
选项用于更改或重命名现有用户的用户名
修改用户组名
另外,还需要修改group组中的tester3位tester4
sudo groupmod -n newgroup oldgorup
修改用户密码
sudo passwd userName
samba配置(如需要)
samba主要用于其他服务器访问linux的共享目录
samba账号配置
删除老账户的samba账号
smbpasswd -x 老账号
添加新账号,并配置密码
sudo smbpasswd -a 新账号
查询新账号是否添加成功
sudo pdbedit -L | grep 新账号
smb.conf配置
删除老账户的samba.conf配置,替换成新用户的samba配置
vim /etc/samba/smb.conf
[新账号]
comment = 新账号 Shared Folder
path = /目录/新账号
public = no
writable = yes
valid users = 新账号
browseable = yes
create mask = 0777
directory mask = 0777
修改用户附属组
gpasswd删除某个用户的附属组
sudo gpasswd -d username groupname
gpasswd将某个用户添加到附属组
sudo gpasswd -a username groupname
设置用户组的成员列表
sudo gpasswd -M username1,username2 groupname
usermod修改附属组
【注意】
修改用户附属组命令是,要注意。
-a 以追加的方式添加
-G 附属组,默认会覆盖原附属组的内容
这里不可以少了-a参数,我有一次对sudo附属组使用该命令没加-a,导致用户没有了sudo权限,只能切换到root后添加,如果没有root密码呢?只能重启服务器重新配置root密码,特别重要的服务器不是你想重启就可以重启的。
usermod -a -G 附属组名 用户名
xxx@xxx:~$ tail -2 /etc/group
tester:x:1007:tester1,yjl
tester4:x:1008:
xxx@xxx:~$ sudo usermod -aG tester tester4
[sudo] password for yjl:
xxx@xxx:~$ tail -2 /etc/group
tester:x:1007:tester1,yjl
tester4:x:1008:
参考资料:
添加用户useradd Linux useradd命令详解:添加新的系统用户
删除用户userdel Linux userdel命令详解:删除用户
adduser -group 组名 用户名报错adduser: Specify only one name in this mode.
的解决方法:linux - adduser: Specify only one name in this mode - Unix & Linux Stack Exchange
另外补充,linux使用useradd创建的用户没有目录的解决办法 linux使用useradd创建的用户没有目录的解决办法 - sogeisetsu - 博客园
Linux的useradd与adduser命令区别:Linux的useradd与adduser命令区别 — 浮云的博客