首页 > 系统相关 >用户、用户组管理(CentOS)

用户、用户组管理(CentOS)

时间:2022-10-22 14:24:20浏览次数:46  
标签:testgroup testuser CentOS passwd 用户组 用户 口令

centos中新建的非root用户是没有sudo的权限的,如果需要使用sudo权限必须在/etc/sudoers 中加入账户和权限,

所以切换到root账号的时候只需要输入:su加入root账号的密码即可。

在Ubuntu中,一般使用sudo+命令,如果是第一次使用会提示输入当前用户的密码(而不是root的密码)。

注意:在Ubuntu中两个命令:useradd和adduser,虽然功能一致,但用法却不尽相同,在Ubuntu系统上这是两条命令,而在Centos上则是同一条命令,adduser 是链接的形式存在。

一、账户管理

1. 新建用户

1.1 确保当前登录用户有创建新用户的权限

# 查看当前已存在用户。
cat /etc/passwd |cut -f 1 -d:

注意:linux里没有windows的net user,net localgroup命令。

1.2 查看UID

# 查看用户ID

more /etc/passwd

注意:参数(UID)为0即为系统管理员,1-499为系统帐号(新版本为1-999),500-65535为一般使用者(新版本系统以1000开头)。

本例中“root”的UID为0(即为系统管理员),“fairy”为1000(一般使用者)。

 

1.3 添加用户

 useradd [用户名]      // 默认主文件夹在 `/home` 目录 

添加一个名为“testuser”的帐号,默认会添加一个同名的组,并在/home新建一个同名目录。

useradd testuser

参数:

  -m 新账号名称
  -c comment 指定一段注释性描述。
  -d 目录 指定用户主目录,如果此目录不存在,则同时使用 -m 选项,可以创建主目录。
  -g 用户组 指定用户所属的用户组。
  -G 用户组,用户组 指定用户所属的附加组。
  -s Shell文件 指定用户的登录Shell。
  -u 用户号 指定用户的用户号,如果同时有 -o 选项,则可以重复使用其他用户的标识号。

 例如:

  此命令创建了一个用户testuseruser,其中-d和-m选项用来为登录名testuseruser产生一个主目录 /home/testuseruser(/home为默认的用户主目录所在的父目录)。

  useradd –d /home/testuseruser -m testuseruser

注意:此时帐号“testuser”处于锁定状态。

1.4 设置密码

passwd [用户名]        // 设置用户密码

创建用户完毕后,必须修改密码否则无法登陆,Linux不显示密码。

# 需输入相同密码两次
passwd wtf123456

1.5 授权

新创建的用户并不能使用 sudo 命令,需要授权。

1.5.1 添加 sudoers 文件可写权限

chmod -v u+w /etc/sudoers

1.5.2 修改 sudoers 文件

使用 vim 编辑器打开 sudoers 文件

 

# 编辑 vi /etc/sudoers,在 sudoers 文件中找到如下位置并添加如下内容:

  [用户名]    ALL=(ALL)     ALL   

 

  备注:

  若新用户需要使用 sudo 时不输密码, 则将此行最后一个 ALL 改为 NOPASSWD:ALL 即可

  testuser   ALL=(ALL)       NOPASSWD:ALL

1.5.3 收回 sudoers 文件可写权限

chmod -v u-w /etc/sudoers

1.6 切换账户

# 切换到用户(testuser)下即可使用。
su - testuser

1.7 查看默认设置

# 查看此账户的默认设置
useradd -D

2. 删除账户

2.1 退出用户组

将名称为testuser的用户退出名称为testgroup的组

 gpasswd -d testuser testgroup

2.2  删除用户账号和主目录

# userdel 选项 用户名

  常用的选项是 -r,它的作用是把用户的主目录一起删除。

  例如:

# userdel -r testuser

  此命令删除用户testuser在系统文件中(主要是/etc/passwd, /etc/shadow, /etc/group等)的记录,同时删除用户的主目录。

备注:

删除用户可能会提示用户被占用根据进程号,先杀进程再删除。

kill -9 进程号

 

2.3 查看文件内容命令

cat     由第一行开始显示内容,并将所有内容输出
tac     从最后一行倒序显示内容,并将所有内容输出
more    根据窗口大小,一页一页的现实文件内容
less    和more类似,但其优点可以往前翻页,而且进行可以搜索字符
head    只显示头几行
tail    只显示最后几行
nl      类似于cat -n,显示时输出行号
tailf   类似于tail -f 

3. 修改账户

修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。

修改已有用户的信息使用usermod命令,其格式如下:

usermod 选项 用户名

常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。

 另外,有些系统可以使用选项:-l 新用户名这个选项指定一个新的账号,即将原来的用户名改为新的用户名。

例如:

# usermod -s /bin/ksh -d /home/h –g testgroup testuser

此命令将用户testuser的登录Shell修改为ksh,主目录改为/home/h,用户组改为testgroup。

二、用户组管理

每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

1. 新建用户组

1.1 增加一个新的用户组

使用groupadd命令。其格式如下:

groupadd 选项 用户组

可以使用的选项有:

  • -g GID 指定新用户组的组标识号(GID)。
  • -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

例如:

# groupadd testgroup

此命令向系统中增加了一个新组testgroup,新组的组标识号是在当前已有的最大组标识号的基础上加1。

# groupadd -g 1000 testgroup

此命令向系统中增加了一个新组testgroup,同时指定新组的组标识号是1000。

1.2 新建用户同时添加组

新建用户同时增加用户组:
useradd -g testgroup testuser       //新建testuser用户并增加到testgroup用户组

给已有的用户增加用户组:

usermod -G groupname username 

或者: gpasswd -a user group useradd -s /bin/sh -g testgroup –G adm,root testuser

此命令新建了一个用户testuser,该用户的登录Shell是 /bin/sh,它属于testgroup用户组,同时又属于adm和root用户组,其中testgroup用户组是其主组。

这里可能新建组:

# groupadd testgroup 及 groupadd adm

增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。

Linux提供了集成的系统管理工具userconf,它可以用来对用户账号进行统一管理。

补充:查看用户和用户组的方法
用户列表文件:/etc/passwd
用户组列表文件:/etc/group
查看系统中有哪些用户:cut -d : -f 1 /etc/passwd
查看可以登录系统的用户:cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1
查看某一用户:w 用户名
查看登录用户:who
查看用户登录历史记录:last

2. 修改用户组

2.1 修改组属性

修改用户组的属性使用groupmod命令。其语法如下:

groupmod 选项 用户组

常用的选项有:

  • -g GID 为用户组指定新的组标识号。
  • -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
  • -n 新用户组 将用户组的名字改为新名字

例如:

将组testgroup的组标识号修改为1001

# groupmod -g 1001 testgroup

将组testgroup的标识号改为10000,组名修改为testgroup1

# groupmod –g 10000 -n testgroup1 testgroup

2.2 多用户组

如果一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便具有其他用户组的权限。

用户可以在登录后,使用命令newgrp切换到其他用户组,这个命令的参数就是目的用户组。

例如:

# newgrp root

这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。类似于用户账号的管理,用户组的管理也可以通过集成的系统管理工具来完成。

3. 删除用户组

3.1 删除组

#删除名称为testgroup的组

groupdel testgroup

三、用户口令的管理

用户管理的一项重要内容是用户口令的管理。用户账号创建完时没有口令,被系统锁定无法使用,必须为其指定口令后才可以使用,即使是指定空口令。

指定和修改用户口令的Shell命令是passwd。超级用户可以为自己和其他用户指定口令,普通用户只能用它修改自己的口令。

命令的格式为:

passwd 选项 用户名

可使用的选项:

  • -l 锁定口令,即禁用账号。
  • -u 口令解锁。
  • -d 使账号无口令。
  • -f 强迫用户下次登录时修改口令。

如果默认用户名,则修改当前用户的口令。

例如,假设当前用户是testuser,则下面的命令修改该用户自己的口令:

$ passwd 
Old password:****** 
New password:******* 
Re-enter new password:*******

如果是超级用户,可以用下列形式指定任何用户的口令:

# passwd testuser 
New password:******* 
Re-enter new password:*******

普通用户修改自己的口令时,passwd命令会先询问原口令,验证后再要求用户输入两遍新口令,如果两次输入的口令一致,则将这个口令指定给用户;而超级用户为用户指定口令时,就不需要知道原口令。

为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小写字母和数字,并且应该与姓名、生日等不相同。

为用户指定空口令时,执行下列形式的命令:

# passwd -d testuser

此命令将用户 testuser 的口令删除,这样用户 testuser 下一次登录时,系统就不再允许该用户登录了。

passwd 命令还可以用 -l(lock) 选项锁定某一用户,使其不能登录,例如:

# passwd -l testuser

四、设置用户首次登录必须修改密码

1. 添加新账户

useradd testuser

2. 设置初始密码

设置帐号初始密码为“wtf123456”

echo "wtf123456" | passwd --stdin testuser

3. 设置密码过期

chage -d 0 testuser

4. 登录新账户

提示必须修改密码,输入新密码并回车确定后,会自动中断连接,再次连接即可)。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

#参数
创建新用户:useradd

标签:testgroup,testuser,CentOS,passwd,用户组,用户,口令
From: https://www.cnblogs.com/elfin/p/16813338.html

相关文章

  • CentOS 安装docker
    1.旧版本删除yumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-se......
  • centos 下卸载mysql
    1.查看数据库rpm-qa|grep-imysql2.卸载包(查出来的)方法一,(不行的话试试第二种)rpm-e–nodeps包名方法二rpm-ev包名--nodeps3.查找安装数据库的目录find/-namemysq......
  • centos6下设置MySQL允许远程链接
    1、如果MySQL没安装的话:#安装yum-yinstallmysql-server#启动servicemysqldstart#登录MySQLmysql-uroot#将root用户的密码修改为123456(密码可以自行设置......
  • 用户组管理
    介绍  类似于角色,系统可以对有共性的多个用户进行统一的管理。8.1新增组新增组  groupadd组名案例演示  groupaddwudang8.2删除组删除组  groupdel组名案例......
  • centos6永久固定IP地址
    centos6下设置IP地址关机后不会变前言在设置之前推荐将ip地址设置为当前系统的ip地址,怕后面设置的时候,出现ip冲突#查看当前系统ip地址命令:ifconfig1、修改文件(有些......
  • 基于Redis实现用户签到、UV统计的功能
    用户签到在Redis中使用位图(BitMap)来存储签到信息,可以大大减小开销。同时在设计redis数据结构时,在key中加上时间、用户id等信息,可以统计该用户在某个时间段内的签到情况。(b......
  • CentOS firewalld防火墙的操作
    1、查看firewall服务状态systemctlstatusfirewalld出现Active:active(running)切高亮显示则表示是启动状态。出现Active:inactive(dead)灰色表示停止,看单词也行......
  • Centos7最小安装配置|Linux
    0.前言Linux/Centos7最小化安装后需要做的几件事1.快速安装$yuminstall-ynet-tools$yuminstall-ycurl$yuminstall-ywget$yum-yinstallvim$yum......
  • C语言实现模拟用户登录
    一.问题要求模拟用户登录情况,用户输入密码,如果密码正确就提示登陆成功,错误就显示登录失败,且只能有三次机会,输入错误三次就退出程序二.解决思路我们可以先确定一个密码,然后用......
  • 解决oracle18c没有hr用户
    1.查找系统变量ORACLE_HOME的值2.按照路径寻找sql文件ORACLE_HOME变量值+demo\schema\human_resources3.把hr_main.sql脚本文件放在此处4.登入sys用户执行@+路径+文......