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-

阅读剩余
THE END