linux 修改用户名_Linux用户和组管理及相关命令

64e88779209e72f3f593e732365b126b.png

Linux是一个多用户多任务的操作系统,多用户指多个用户可以同时使用该操作系统完成相应的操作,多任务是指Linux可以同时执行几个任务,可以在还未执行完一个任务时又执行另一项任务,通过并行和并发来实现。
多用户就要面临着用户管理的问题,主要有用户密码、权限、组的管理,实际通过以下文件来进行控制,一些辅助命令也是对以下几个文件进行操作。

/etc/passwd

存储了系统中所有用户的基本信息,并且所有用户都可以对此文件执行读操作。

# cat /etc/passwdroot:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologinbin:x:2:2:bin:/bin:/usr/sbin/nologinsys:x:3:3:sys:/dev:/usr/sbin/nologin......

采用冒号进行分割,分别是用户名、密码、用户id、组id、备注、家目录、默认shell,以下进行较为详细的解释说明:

用户名

用户名就不解释了,简单的来说就是Linux用户的一个绰号

密码

密码位置一般是X,只是一种标致,真正的密码保存在/etc/shadow文件中,但是如果该位置为空,系统会认为该用户不需要密码即可登录

用户ID

一般称为UID,Linux系统是通过UID来识别不同的用户和分配用户权限的,0表示超级用户,把普通用户的UID修改为0即可变为一个超级管理员,但实际是不允许这么操作

组id

一般称之为GID,一个用户可以属于多个组,这里显示的是用户的初始化时候的组,也就是第一个组,一般就是将和这个用户的用户名相同的组名作为这个用户的初始组。另外就是附加组的概念了,也就是后来陆陆续续加入的其他组,可以在/etc/group文件中查看。
另外初始组后续也是可以修改的。

备注

一般默认就是用户名,也可以设置成其他的信息,就是一个简要的说明,实际生产中也很少用到。

家目录

用户登录计算机后,首先进入的那个目录就是家目录,后续再任意位置执行cd ~即可到达家目录。

默认shell

shell是一个命令行解释器,简单的来说就是人与机器命令交互的窗口,相当于win下的视窗,常见的shell解释器有sh、bash这两种,其他的有ksh、csh等不是特别常见,现在的主流Linux默认shell是bash,一般个人使用尤其是在mac上会安装一下zsh,主要是因为oh-my-zsh这个傻瓜是的配置工具,提供了命令不全、美化、各种神插件提升工作效率。

/etc/shadow

由于设计上/etc/passwd所有用户都有读权限,因此密码保存在这上面所有用户都可以看到,是不安全的,后来就将密码相关的内容同单独拉出来一个文件进行保存,并且加了其他的一些参数更加有效的保障密码的安全。

cat /etc/shadowroot:$6$FJ.dgxnl$asdffrEo4ePq427V5pJq9VCAmfsQrzZkBw2ac7FlYPdepgBURTFPV7sfmH9d7vK3xkJ0Yz0bm6ReM5mkiciQC.:17984:0:99999:7:::daemon:*:17212:0:99999:7:::bin:*:17212:0:99999:7:::sys:*:17212:0:99999:7:::

同样也是采用冒号分割,分别是用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段

用户名

用户名就不用解释了,与passwd文件中的用户名对应

密码

现在密码一般采用SHA512 散列加密算法,加密等级更高,也更加安全
最后修改时间这个数字指的是从1970 年 1 月 1 日作为 1 不断累加得到的天数,可以通过以下命令查看是哪一天创建的

date -d "1970-01-01 17984 days"2019年 03月 29日 星期五 00:00:00 CST

最小修改时间

最小修改时间间隔指的是小于间隔时间不得修改密码,设为0则可以随时修改,主要是为了避免频繁修改代码

密码有效期

密码有效期代表允许密码多少天内可以不修改

告警天数

密码警告天数,在设置了有效期之后提前多少天提醒用户修改密码
过期宽限时间,过期后多少天以内可以使用,为空或者为-1代表永不过期,过期后则不可以再登录

账号失效时间

账号失效时间,该账号只准使用多少天,超过这个天数则不可以再使用

chage命令

以上信息可以通过以下命令获取,实际还是读取的该文件,只不过进行了格式化输出:

# chage -l rootLast password change                                : 3月 29, 2019Password expires                                    : neverPassword inactive                                    : neverAccount expires                                        : neverMinimum number of days between password change        : 0Maximum number of days between password change        : 99999Number of days of warning before password expires    : 7

该命令除了查看配置参数意外还可以进行配置,相应的参数如下:

  -d, --lastday LAST_DAY        set date of last password change to LAST_DAY  -E, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE  -h, --help                    display this help message and exit  -I, --inactive INACTIVE       set password inactive after expiration                                to INACTIVE  -l, --list                    show account aging information  -m, --mindays MIN_DAYS        set minimum number of days before password                                change to MIN_DAYS  -M, --maxdays MAX_DAYS        set maximim number of days before password                                change to MAX_DAYS  -R, --root CHROOT_DIR         directory to chroot into  -W, --warndays WARN_DAYS      set expiration warning days to WARN_DAYS

其实这个命令只是做了一层校验,防止将配置文件修改错误,跟vipw这个命令类似。

vipw & vigr命令

这两个命令最主要就是会给文件加锁!以免在编辑文件时!其他用户也在同时使用文件!而造成其他用户修改的不成功!以下为官方简介:


The vipw and vigr commands edits the files /etc/passwd and
/etc/group, respectively. With the -s flag, they will edit the shadow
versions of those files, /etc/shadow and /etc/gshadow, respectively.
The programs will set the appropriate locks to prevent file
corruption. When looking for an editor, the programs will first try
the environment variable $VISUAL, then the environment variable
$EDITOR, and finally the default editor, vi(1).

对应修改的文件如下:

vipw     修改/etc/passwd文件vipw –s  修改/etc/shadow文件vigr     修改/etc/groups文件vigr –s  修改/etc/

忘记密码

普通用户忘记密码可以通过root用户来设置,root用户要是忘记密码进入单用户模式,执行passwd root修改密码即可,不过不同的发行版本可能有一定差异。

/etc/group

用户组的所有信息都存放在/etc/group文件中,用户分组是Linux 系统中对用户进行管理及控制访问权限的一种手段,用户与用户组是多对对的关系

cat /etc/grouproot:x:0:daemon:x:1:bin:x:2:sys:x:3:.....

该文件有四个字段:组名:密码:组ID:组内用户列表

组名

该小组的名称,理论上不能重复,可以由字母和数字构成

密码

这里跟passwd文件中类似,实际存储在/etc/gshadow文件中,实际工作中需要调整组信息一般用root代替,这里是为了设置组管理员的,一般使用不到。

组ID

一般称为GID,跟UID一样,实际Linux中文件也是通过id也标识的,名字只是为了方便用户记忆和识别。

组用户

该群组包含的所有用户,使用,分割

/etc/gshadow

/etc/gshadow和/etc/group是互补的两个文件,跟上面的用户管理文件类似,

cat /etc/gshadowroot:*::daemon:*::bin:*::sys:*::

分别是用户组、密码、管理者、组成员(附加用户),比较简单就不详细介绍了。

相关命令

用户账号的管理工作主要涉及到用户账号的添加、修改和删除,以及所属组的管理,本质上可以抽象为增删改查。

用户

用户管理主要是新建用户、用户后续的信息修改等。

新建用户

useradd创建一个新用户,常见参数如下:

-u UID:指定 UID,这个 UID 必须是大于等于500,并没有其他用户占用的 UID-g GID/GROUPNAME:指定默认组,可以是 GID 或者 GROUPNAME,同样也必须真实存在-G GROUPS:指定额外组-c COMMENT:指定用户的注释信息-d PATH:指定用户的家目录

一般我们穿件用户都会穿件相应的用户组和家目录,所以最长使用以下命令:

useradd -s /bin/bash -m user_name
删除用户

如果一个用户的账号不再使用,可以从系统中删除,使用userdel命令,不加-r参数只是删除用户,但还保留用户家目录,加上之后则完全删除。

userdel -r sam
修改用户

更改用户的有关属性,如用户号、主目录、用户组、登录Shell等,使用usermod命令。

修改用户名
usermod -l old_name  new_name
修改家目录

需要root用户执行

usermod -d /home/old_name -m ole_name```bash##### 修改组名```bashgroupmod -n old_g_name  new_g_name
修改密码

后面跟上用户名可以修改其他用户的密码,前提是有权限。

passwdEnter new UNIX password:

其他命令可以自行查看手册。

用户组的管理涉及用户组的添加、删除和修改,跟上面的用户管理一样,本质也都是对对应文件的修改。

创建组

一般是直接创建组或者指定GID创建组,

groupadd g_namegroupadd -g $gid g_name
删除组
groupdel group_name
修改组

那就是修改组id或者组名了,后面只有一个组名则只是修GID,否则是同时修改

groupmod –g $gid -n group_new_name group_old_name

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值