赞
踩
Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
useradd命令用于Linux中创建的新的系统用户。useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。
基本语法
useradd [options] 用户名
options选项如下:
-c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中;
-d<登入目录>:指定用户登入时的启始目录;默认情况下家目录是/home下的与用户名同名的目录
-D:变更预设值;
-e<有效期限>:指定帐号的有效期限;
-f<缓冲天数>:指定在密码过期后多少天即关闭该帐号;
-g<群组>:指定用户所属的群组;可以使用GID也可以使用组名来为其指明基本组
-G<群组>:指定用户所属的附加群组;附加组可以有多个,多个附加组之间用逗号隔开
-m:自动建立用户的登入目录;
-M:不要自动建立用户的登入目录;
-n:取消建立以用户名称为名的群组;
-r:建立系统帐号;
-s<shell>:指定用户登入后所使用的shell;
-u<uid>:指定用户id。根据规定,普通用户的UID必须大于499且不能和已存在的UID重复
-r
添加新用户为系统用户,系统用户的UID在1-499之间,一般不能登入,没有家目录。
注:该命令添加的用户的部分默认参数(比如用户的默认shell)在/etc/default/useradd文件中。
实例
useradd janus
细节说明
1)当创建用户成功后,会自动的创建和用户同名的家目录;
2)也可以通过useradd -d
指定目录新的用户名,给新创建的用户指定家目录。
改变该用户登陆的初始目录
usermod –d 目录名 用户名
使用 -d 修改用户家目录的时候最好用再配合 -m 使用,其意思是修改家目录的同时把原来家目录下的文件复制一份到目的家目录。
添加用户并指定uid
useradd -u 1000 jane
添加用户并指定基本组gid
useradd -g 1000 jane2
指定新添加的用户的附加组
useradd -G jane,root jane3
注:如果使用-G为用户修改附加组的话,默认情况下会覆盖原有的附加组,如果只想追加新的附加组可以使用 -aG 其中a表示追加。
为新添加的用户指定默认shell
useradd -s /bin/bash jane
修改用户的登入shell还可以使用 chsh (change shell)命令。其用法为 chsh USERNAME
可以用pwck来检查用户账号的完整性。
添加用户指定主要组和附加组
useradd –g sales jack –G company,employees //-g:加入主要组、-G:加入次要组
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 [option] [USERNAME]
,不指定用户名时默认用户为当前用户。
-u 查看UID
-g 查看基本组的GID
-G 查看所有组的GIO
-n 和上面的选项组合使用,用于显示名称,而非id号
实例如下
[root@localhost home]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@localhost home]# id amaer
uid=1000(amaer) gid=1000(amaer) groups=1000(amaer)
如果想查看用户家目录,还可以在 /etc/passwd
中查看:
vim /etc/passwd
语法
passwd 用户名
实例
[root@bogon home]# passwd janus
Changing password for user janus.
New password:
BAD PASSWORD: it is too simplistic/systematic
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
如果密码过于简单,Linux将会提示,这时可以坚持一下~
userdel命令用于删除给定的用户,以及与用户相关的文件。若不加选项,则仅删除用户帐号,而不删除相关文件。
语法
userdel [options] 用户名
选项
-f:强制删除用户,即使用户当前已登录;
-r:删除用户的同时,删除与用户相关的所有文件。
实例
//userdel 有哪些选项 [root@bogon home]# userdel --help Usage: userdel [options] LOGIN Options: -f, --force force some actions that would fail otherwise e.g. removal of user still logged in or files, even if not owned by the user -h, --help display this help message and exit -r, --remove remove home directory and mail spool -R, --root CHROOT_DIR directory to chroot into -Z, --selinux-user remove any SELinux user mapping for the user //删除用户但是保留家目录 [root@bogon home]# userdel janus [root@bogon home]# ll total 8 drwx------. 25 jane jane 4096 Jun 4 07:20 jane drwx------. 4 501 501 4096 Jun 5 08:42 janus [root@bogon home]# rm -rf ./janus/ [root@bogon home]# ll total 4 drwx------. 25 jane jane 4096 Jun 4 07:20 jane //再次创建用户Janus [root@bogon home]# useradd janus Creating mailbox file: File exists [root@bogon home]# ll total 8 drwx------. 25 jane jane 4096 Jun 4 07:20 jane drwx------. 4 janus janus 4096 Jun 5 08:49 janus //删除用户和家目录 [root@bogon home]# userdel -r janus [root@bogon home]# ll total 4 drwx------. 25 jane jane 4096 Jun 4 07:20 jane
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:解除密码锁定。
实例
#修改newuser的用户名为newuser1:
usermod -l newuser1 newuser
在操作Linux中,如果当前用户的权限不够,可以通过su -
指令,切换到高权限用户,比如root。
语法
su –切换用户名
实例
//从root切换到jane不需要密码
[root@bogon home]# su jane
//从jane切换到root需要密码
[jane@bogon home]$ su root
Password:
//exit-jane
[root@bogon home]# exit
exit
//exit-jane-root
[jane@bogon home]$ exit
exit
[root@bogon home]#
细节说明
1)从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
2)当需要返回到原来用户时,使用exit指令。
查看用户语法
whoami/ who am I
实例
[root@bogon home]# whoami
root
[root@bogon home]# id root
uid=0(root) gid=0(root) groups=0(root)
用户组类似于角色,系统可以对有共性的多个用户进行统一的管理。
新增组
groupadd 组名
groupadd mygroup
//使用命令查看
cat /etc/group/
另外,还可以发现创建用户的时候同时创建了用户组。
删除组
groupdel 组名
groupdel mygroup
增加用户时指定到存在的组
useradd –g 用户组 用户名
[root@bogon home]# groupadd mygroup
[root@bogon home]# useradd -g mygroup janus
[root@bogon home]# id janus
uid=501(janus) gid=501(mygroup) groups=501(mygroup)
修改用户组
usermod –g 用户组 用户名
[root@bogon home]# groupadd mygroup2
[root@bogon home]# usermod -g mygroup2 janus
[root@bogon home]# id janus
uid=501(janus) gid=502(mygroup2) groups=502(mygroup2)
用户和组的相关文件
每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
。
每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
。
每行含义:组名:口令:组标识号:组内用户列表
。
几个配置文件
/etc/passwd —— 账号文件
/etc/shadow —— 密码文件
/etc/group—— 组信息文件
/etc/gshadow —— 组密码文件
/etc/skel —— 用户默认家目录的备份文件
① 账号文件
[root@VM_0_12_centos ~]# tail -f /etc/passwd
abrt:x:173:173::/etc/abrt:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
mysql:x:500:501::/home/mysql:/sbin/nologin
jane:x:501:502::/home/jane:/bin/bash
passwd文件中的配置规则如下:
用户名:密码占位符:用户ID:组ID:一般的信息:家目录:默认登入shell
② 密码文件
shadow文件的配置规则如下:
③ 组信息文件
[root@VM_0_12_centos ~]# tail -f /etc/group
dbus:x:81:
slocate:x:21:
stapusr:x:156:
stapsys:x:157:
stapdev:x:158:
tcpdump:x:72:
syslog:x:498:
systemd-journal:x:500:
mysql:x:501:
jane:x:502:
用户组文件规则如下:
组名:密码占位符:组ID:以该组为额外组的组内用户
① 说明
正如window系统在安装完毕后会自动建立一些用户账号,linux也会生成一些目标是为了完成特定任务的账号,如nobody和ftp。
首先,nobody是一个普通用户,没有特权,他存在的目的是为了让任何人都能登录系统,通俗来说: 一个系统,任何人都能登录,那么当我们登录后,我们的身份是什么,我们是nobody,可以看做一个特殊的名分。 使用nobody用户名的目的
是,使任何人都可以登录系统,但是其 UID 和 GID 不提供任何特权,即该uid和gid只能访问人人皆可读写的文件。
很多系统都会按照惯例创建一个nobody,并且将其权限降到最低
。例如服务器对外公布,会让客户以nobody身份登录,由于权限很低,这样能降低风险,这也是其存在的意义。
② 注意
尽量不要在任何地方使用该用户,比如nginx.conf 。如果配置了user nobody
,恭喜你你会遇到莫名其妙的错误!这也就是说如果项目出了非正常错误,第一是查看磁盘空间IO网络等,第二就是查看某些配置的用户权限、所属用户对象!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。