Linux基础之用户管理

简介: Linux基础之用户管理

今天给大家介绍的是linux基本的用户(usr)管理和组(group)管理。


640.jpg


在linux中,任何一个要使用系统资源的用户,都必须首先向系统管理员(root)申请一个账号,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。


在linux中拥有最高管理员权限的账户为root,root账号是其他所有账号的基础,首先,在有了root根账号的情况下,我们想要创建我们自己的个人账号就需要用到以下指令:

useradd   参数   用户名

关于参数,我们这边介绍一下,有哪些常用参数:


-c comment 指定一段注释性描述。


-d 目录 指定用户主目录。


-g 用户组 指定用户所属的用户组。


-u 用户号 指定用户的用户号。


useradd -d /usr/john -m john

640.png


创建了一个用户john,其中-d和-m选项用来为登录名john产生一个主目录/usr/john


640.png


这是添加账号,下面我们来看看删除账号,指令:


userdel 参数 用户名


我们一般会用到的参数是-r ,递归删除,把它所在的目录也删除掉。

试试手:

userdel -r john

640.png

640.png


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



下面讲一下修改账号

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

修改已有用户的信息使用usermod命令:


usermod 参数 用户名


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

另外,有些系统可以使用选项:-l 新用户名


(有兴趣的都读一下,所有的参数都在这里了

这个选项指定一个新的账号,即将原来的用户名改为新的用户名。

-c, --comment COMMENT         new value of the GECOS field

 -d, --home HOME_DIR           new home directory for the user account

 -e, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE

 -f, --inactive INACTIVE       set password inactive after expiration

                               to INACTIVE

 -g, --gid GROUP               force use GROUP as new primary group

 -G, --groups GROUPS           new list of supplementary GROUPS

 -a, --append                  append the user to the supplemental GROUPS

                               mentioned by the -G option without removing

                               him/her from other groups

 -h, --help                    display this help message and exit

 -l, --login NEW_LOGIN         new value of the login name

 -L, --lock                    lock the user account

 -m, --move-home               move contents of the home directory to the

                               new location (use only with -d)

 -o, --non-unique              allow using duplicate (non-unique) UID

 -p, --password PASSWORD       use encrypted password for the new password

 -R, --root CHROOT_DIR         directory to chroot into

 -s, --shell SHELL             new login shell for the user account

 -u, --uid UID                 new UID for the user account

 -U, --unlock                  unlock the user account

 -v, --add-subuids FIRST-LAST  add range of subordinate uids

 -V, --del-subuids FIRST-LAST  remove range of subordinate uids

 -w, --add-subgids FIRST-LAST  add range of subordinate gids

 -W, --del-subgids FIRST-LAST  remove range of subordinate gids

 -Z, --selinux-user SEUSER     new SELinux user mapping for the user account


试试手:

usermod -d /home/z yuqing

640.png

把用户所在的主目录改为/home/z


usermod -g yuqingwu yuqing

640.png

把用户所在的组改成yuqingwu



对账户的增删改我们已经介绍完毕了,现在我们来看看,口令管理(这里的口令就是我们所指的账号密码,这边我们把它叫做口令)


我们刚刚创建用户的时候没有口令,会被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。

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


passwd 参数 用户名



可使用的参数:

-l 锁定口令,即禁用账号。

-u 口令解锁。

-d 使账号无口令。

-f 强迫用户下次登录时修改口令。


我们看看系统还提供了那些命令参数

(自行翻译,经常用的我已经列出来了,下面是系统提供的所有的参数,感兴趣的都了解一下)

Usage: passwd [options] [LOGIN]


Options:

 -a, --all                     report password status on all accounts

 -d, --delete                  delete the password for the named account

 -e, --expire                  force expire the password for the named account

 -h, --help                    display this help message and exit

 -k, --keep-tokens             change password only if expired

 -i, --inactive INACTIVE       set password inactive after expiration

                               to INACTIVE

 -l, --lock                    lock the password of the named account

 -n, --mindays MIN_DAYS        set minimum number of days before password

                               change to MIN_DAYS

 -q, --quiet                   quiet mode

 -r, --repository REPOSITORY   change password in REPOSITORY repository

 -R, --root CHROOT_DIR         directory to chroot into

 -S, --status                  report password status on the named account

 -u, --unlock                  unlock the password of the named account

 -w, --warndays WARN_DAYS      set expiration warning days to WARN_DAYS

 -x, --maxdays MAX_DAYS        set maximum number of days before password change to MAX_DAYS


现在我们来改一下yuqing这个用户的口令(密码):

passwd yuqing

640.png



为yuqing这个用户设置口令(密码)

TIPS:在linux中,所有的输入密码都是看不到的,所以别人看不到你输入的密码有多少位,是多少,安全性比较强。


我现在是处在root用户下面,所以可以直接进行设置修改,如果是普通用户,

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


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

passwd -d yuqing

640.png


其实严格来说,为了系统安全起见,用户应该选择比较复杂的口令,例如最好使用8位长的口令,口令中包含有大写、小写字母和数字。


下面,我们可以禁用yuqing这个账号

passwd -l yuqing

640.png

这样yuqing这个账号就被锁住的,我们就不可以对其进行访问了。

这样关于用户的介绍就结束了,有兴趣的可以登陆网站http://man.linuxde.net/了解一下。




下面我们来看看组(group)的管理:


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

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


先来添加组吧,需要用到的指令是:

groupadd 参数 组名

可以使用的参数有:

-g GID 指定新用户组的组标识号(GID)。

-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。


我们来看看系统里面还有什么其他的参数:

(自行翻译,如果真的英语不行,请告诉我,我给你有翻译的网址,谢谢,不客气!)

Usage: groupadd [options] GROUP


Options:

 -f, --force                   exit successfully if the group already exists,

                               and cancel -g if the GID is already used

 -g, --gid GID                 use GID for the new group

 -h, --help                    display this help message and exit

 -K, --key KEY=VALUE           override /etc/login.defs defaults

 -o, --non-unique              allow to create groups with duplicate

                               (non-unique) GID

 -p, --password PASSWORD       use this encrypted password for the new group

 -r, --system                  create a system account

 -R, --root CHROOT_DIR         directory to chroot into

     --extrausers              Use the extra users database


试试:

groupadd yuqing2

640.png

向系统中增加了一个新组yuqing2


group -g 201 yuqing3

640.png

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



下面我们再来看看删除一个组:

删除组其实很简单:


groupdel 组名


都不用加参数的,我们来试试:

640.png


这样就删除我们刚刚新建的group yuqing2和yuqing3了。



接下来我们看看修改组属性,这个时候我们用到的指令是:


groupmod 参数 用户组


常用的参数有:

-g GID 为用户组指定新的组标识号。

-o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。

-n新用户组 将用户组的名字改为新名字


下面我们来看看系统里还提供了什么参数:

(自行翻译)

Usage: groupmod [options] GROUP


Options:

 -g, --gid GID                 change the group ID to GID

 -h, --help                    display this help message and exit

 -n, --new-name NEW_GROUP      change the name to NEW_GROUP

 -o, --non-unique              allow to use a duplicate (non-unique) GID

 -p, --password PASSWORD       change the password to this (encrypted)

                               PASSWORD

 -R, --root CHROOT_DIR         directory to chroot into


现在我们要把group yuqing的组标识改成404:

groupmod -g 404 yuqing


640.png


同时修改组标识为202和重命名成yuqingjohn

groupmod -g 202 -n yuqingjohn yuqing

640.png



最后还有个切换问题:

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


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


newgrp root


这条命令将当前用户切换到root用户组,前提条件是root用户组确实是该用户的主组或附加组。








今天就讲到这里了。我们下次再见吧!

相关文章
|
2月前
|
存储 运维 安全
linux用户管理
在Linux系统中,用户管理涉及创建、修改和删除用户及用户组,确保权限控制。关键命令如`useradd`用于新建用户,`usermod`调整用户属性,`userdel`删除用户,`passwd`变更密码。用户分为超级用户(root)、普通用户和系统用户。用户组管理包括`groupadd`、`groupdel`、`groupmod`和`gpasswd`。系统通过`/etc/passwd`和`/etc/group`文件存储用户和组信息,采用基于用户和组的权限模型。`su`和`sudo`用于切换用户权限,而`/etc/skel`目录提供新用户家目录的模板。这些机制保障了系统的安全和资源管理。
14 2
|
2月前
|
Linux API 数据安全/隐私保护
【Linux 用户管理】Linux用户身份信息获取与管理API 接口
【Linux 用户管理】Linux用户身份信息获取与管理API 接口
29 0
|
2月前
|
存储 Linux 数据安全/隐私保护
Linux文件权限及用户管理
Linux文件权限及用户管理
16 0
|
4月前
|
Linux Shell 数据安全/隐私保护
Linux用户管理
简单说一下 Linux的用户管理
63 1
|
5月前
|
Linux 程序员 Shell
Linux编辑器,开机重启,用户注销,用户管理 常用命令
Linux编辑器,开机重启,用户注销,用户管理 常用命令
99 0
|
5月前
|
Linux Go 数据安全/隐私保护
linux常用命令手册 用户管理useradd 文件权限管理chmod 搜索管理find grep
linux常用命令手册 用户管理useradd 文件权限管理chmod 搜索管理find grep
66 2
|
8月前
|
安全 Linux Shell
Linux用户管理指南:创建、删除、权限、最佳实践,全面掌握用户管理技巧
Linux用户管理指南:创建、删除、权限、最佳实践,全面掌握用户管理技巧
663 0
|
25天前
|
Linux Shell 数据安全/隐私保护
Linux用户管理
Linux用户管理
10 0
|
5月前
|
大数据 Linux 数据安全/隐私保护
linux语法复习-01天-用户管理-关机和重启
linux语法复习-01天-用户管理-关机和重启
|
2月前
|
缓存 Unix Linux
Linux 常用命令汇总(四):信息显示 & 用户管理
hostname是一个 Unix/Linux 命令行工具,用于显示或设置系统的主机名dmesg是一个在 Unix-like 系统中常用的命令行工具,用于显示内核缓冲区的消息uptime是一个在 Unix 和类 Unix 系统(如 Linux)中常用的命令,用于显示系统已经运行了多长时间,以及当前有多少用户登录和系统负载的平均值stat是一个在 Unix 和类 Unix 系统(如 Linux)中常用的命令行工具,用于显示文件或文件系统的状态信息du。