centos设置用户组?centos7
CentOS7常用命令之 用户和用户组管理
在Linux系统中,用户账号的管理主要涉及添加、修改和删除账号。使用useradd命令添加新账号,其语法如下:
实例1:使用-d和-m选项创建用户sam,主目录为/home/sam。
实例2:新建用户gem,登录Shell为/bin/sh,属于group用户组,同时属于adm和root用户组。
若需新建组,可以使用groupadd命令。常用操作包括删除账号(使用userdel命令,常用选项-r删除主目录),修改账号(使用usermod命令,包含-c、-d、-m、-g、-G、-s、-u等选项),及用户口令管理(使用passwd命令修改口令,选项-l用于锁定账号,-x用于设置口令过期时间)。
用户组管理主要涉及添加、删除和修改用户组。通过groupadd和groupdel命令操作。组的修改使用groupmod命令,包含标识号修改和名称修改等。
用户管理涉及的关键系统文件包括/etc/passwd、/etc/shadow、/etc/group。/etc/passwd文件记录用户的基本属性,如用户名、口令、标识号、组标识号、注释性描述、主目录及登录Shell。/etc/shadow文件存储加密后的用户口令。/etc/group文件记录用户组信息,包括组标识号、组名、组成员等。
为简化批量用户管理,Linux提供了新用户导入工具,如新用户导入命令newusers。首先编辑文本用户文件,每一行按照/etc/passwd格式书写,确保用户名、UID、宿主目录不重复,密码栏可留空或输入x。然后执行newusers命令导入数据,创建用户。使用pwunconv命令解码shadow密码并回写到passwd文件,编辑每个用户的密码对照文件,使用chpasswd命令创建密码,并使用pwconv命令编码为shadow格式。完成创建后,检查用户宿主目录权限设置,登录验证密码。
CentOS系统管理用户和用户组的详解
一:新建用户和用户组:useradd和groupadd
1,useradd的参数:
-u:指定UID标记号
-d:指定宿主目录,缺省为/home/用户名
-e:指定账号失效时间(下面usermod也有此选项)
-g:指定所属的基本组(组名或GID)
-G:指定所属的附加组(组名或GID)
-M:不为用户建立并初始化宿主目录、
-s:指定用户的登录shell(默认为/bin/bash,一般不用改,在建立非登录用户的时候可以指定
为/sbin/nologin)
注:这些参数都能分开用,不冲突的可以在建立用户的时候连着用。
示例1:添加用户stu01,指定UID为520,宿主目录为/public/stu01,指定基本组为users(注:系统中本身就
存在users这个组GID为100),附加组为tech:
[root@localhost~]#useradd-u520-d/public/stu04-gusers-Gtechstu01
[root@localhost~]#idstu01
uid=520(stu01)gid=100(users)groups=100(users),200(tech)
示例2:添加用户stu02,不为用户建立宿主目录:
[root@localhost~]#useradd-M-s/sbin/nologinstu02//创建一个非登录用户stu02
[root@localhost~]#cat/etc/passwd|grepstu02
stu02:x:1001:1001::/home/stu02:/sbin/nologin//-s参数指定bashshell
2,groupadd的参数:
gourpadd[-gGID]组名
-g参数指定了新建用户组的GID
[root@localhost~]#groupadd-g600stu//添加一个组stu,指定其GID为600
[root@localhost~]#cat/etc/group|grepstu//查看stu组的信息
stu:x:600:
二:删除用户和用户组
1,userdel
-格式:userdel[-r]用户名
添加-r选项,宿主目录/用户邮件也一并删除
示例:
[root@localhost~]#useradduser1;useradduser2//添加用户user1和user2
[root@localhost~]#ll-d/home/user1//var/mail/user1/home/user2//var/mail/user2//查看user1、user2的宿主目录和邮件文件是否存在
drwx------3user1user1409602-1809:53/home/user1/
drwx------3user2user2409602-1809:53/home/user2/
-rw-rw----1user1mail002-1809:53/var/mail/user1
-rw-rw----1user2mail002-1809:53/var/mail/user2
[root@localhost~]#userdeluser1;userdel-ruser2//加不加-r的区别
[root@localhost~]#ll-d/home/user1//var/mail/user1/home/user2//var/mail/user2
ls:/home/user2/:没有那个文件或目录//加-r之后删除宿主目录
ls:/var/mail/user2:没有那个文件或目录//加-r之后删除邮件文件
drwx------310021002409602-1809:53/home/user1/
-rw-rw----11002mail002-1809:53/var/mail/user1
[root@localhost~]#
2,groupdel:删除用户组
-格式:groupdel组名
-删除的目标组不能是用户的基本组。
-在删除用户组的时候,如果该组为某个成员的私有组,则无法删除,必须先删除组里面的成员,才能成功删除该组。
[root@localhost~]#iduser1//查看user1的基本组和附加组
uid=1002(user1)gid=1002(user1)groups=1002(user1),600(stu)
[root@localhost~]#grepstu/etc/group
stu:x:600:user1,user2
上面的操作可以看到,user1的基本组为user1,附加组为stu,那么现在只能删除stu,而不能直接删除组user1,因为user1组是一个基本组,要想删除user1,必须先删除user1用户,再删除user1组,而stu组不是一个基本组,只是user1和user2的附加组,所以可以直接删除。
[root@localhost~]#groupdeluser1//尝试删除user1用户组,因为user1组为user1的基本组,所以需要先删除user1用户,才能删除user1组。
groupdel:不能删除用户的主组。
CentOS用户账号管理详解
1、用户管理
/etc/passwd用户名配置文件
/etc/shadow用户密码配置文件
(1)/etc/passwd的结构:
username:password:uid:gid:commit:user home path:shell
说明:
uid和gid系统默认按序自增;
用户的家目录普通用户在/home,root在/(或~);
shell指登录方式常见/bin/bash,/sbin/nologin(设置成不可登录形式);
(2)/etc/shadow的结构
username:用户名
password:密码,加密方式$1(md5)、$5(sha-256)、$6(sha-512)、!!无密码、*锁定用户
最近一次更改密码的时间:距离1970-1-1的天数
多少天后可以更改密码:
密码失效期限:
警告密码失效:密码失效几天之前通知
失效账号期限:及时更改密码,以免用户不可用
后面的为保留字段
插:Linux时间同步
date-s定义时间(date的格式)
ntpdate时间服务器地址
hwclock-h:与BIOS里时间一致
2、对用户账号的操作
(1)基本操作
添加用户:useradd-u [uid]-g [gid]-G [group]-d [home dir path]-M [don't create home path]
-s [shell如/sbin/nologin、/bin/bash] [username]可以创建用户指定组
删除用户:userdel-r连同家目录一并删除
添加用户组:groupadd-g [gid] [groupname]
删除用户组:groupdel[groupname]
查看:id [username]
实例:切换用户不成功,没有用户的家目录
解决方案:
#mkdir home path
#cp-rv/etc/skel/.b* home path
;#如果需要一并删除,家目录的属主属组都要为该用户
(2)更改用户账号的属性
usermod-u-g-G-s-d-L:锁死用户-U:解锁用户
chfn username:增加对用户账户的描述
设定密码
随机生成密码:mkpasswd-l定长-s定义特殊字符-yum install-y mkpasswd)
记录工具:keepass
3、切换用户
su- [username]完全切换,环境变量和家目录等全部切换
su-C''command'- user用某个用户的权限临时执行命令
sudo可以让普通用户临时以指定用户的权限执行命令,
设置用户的密码sudo/bin/ls/root/
更改visudo配置,user ALL=(源用户) NOPASSWD:(无需密码)执行命令的绝对路径
实例1:更改密码时仅输入一次
解决方案:passwd--stdin
echo-e[new password]\n[new passwd]\n|passwdpasswd--stdin [username];\n是回车-e去意字符
实例2:远程登录连接太慢
解决方案:
vim/etc/ssh/sshd_config
将UseDNS*启用,值改为no
/etc/init.d/sshd restart或service sshd restart
实例3:禁用远程root并不妨碍使用root权限执行命令
解决方案:
1.禁用root远程登录
vim/etc/ssh/sshd_config
将PermitRootLogin..启用,值改为no
/etc/init.d/sshd restart或service sshd restart
2.更改切换执行权限
visudo
[username] ALL=(root)NOPASSWD:/bin/ls,/bin/su(位置:root那行下)不要密码切换
su- [username]
sudo su-