一、常用命令
tail -n 5 /etc/group 查看最后5个用户组
tail -n 5 /etc/passwd 查看最后5个用户
id user1 查看user1的uid与组与附加组
su - stu2 : 进入stu2的身份
sudo passwd stu2 : 为用户stu2创建密码
openssl passwd : 产生密码(加盐,重复,效果也不一样)
echo -n 34 : 回音,会返回34
echo -n 34 | openssl passwd -1 -stdin 产生密码(密码是34)(-1 代表加密方式)(加盐,重复,效果也不一样)
sudo useradd -N -g sudo -m -p ‘echo -n hadoop|openssl passwd -1 -stdin’ hadoop
sudo newusers < createUser.user : 重定向输入,将createUser.user输入到newusers
二、 用户和用户组
在Linux 中,每个用户必须有一个主组。当创建账号时,系统会自动创建一个同名组作为该账户的主组。用户必须属于一个且只有一个主组。用户可以属于零个或者多个附加组。
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux 下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group 文件的更新。
2.1 文件
在Linux 中,万物皆文件,所以用户与组也以配置文件的形式保存在系统中,以下为用户和组的主要配置文件详解:
1 | /etc/passwd:用户及其属性信息(名称、UID、主组ID 等) |
2.1.1 passwd
用户账号文件。
该文件用于用户登录时校验用户的登录名、加密的口令数据项、用户ID(UID)、默认的用户分组ID(GID)、GECOS 字段、用户登录子目录。
- 该文件的每一行保存一个用户的资料,以及登录后使用的shell; 而用户资料的每一个数据项之间采用冒号分隔。
1
wl:x:1000:1000:wanglei„,:/home/wanglei:/bin/bash
▶ 1、登录名唯一性,它的长度一般不超过32 个字符,它们可以包括冒号和换行之外的任何字符。登录名要区分大小写。放在etc/passwd 文件的开头部分的用户是系统定义的虚拟用户bin、daemon。
▶ 2、加密的口令当编辑/etc/passwd 文件来创建一个新账号时,在加密口令字段的位置用x 代替。表示是一个经过加密处理的口令,加密后的密码放置在/etc/shadow 文件中,且该文件只能被root 组的账号访问。如果该字段显示“*”则表示对应账号停用。
▶ 3、UID 每个账号唯一的识别号,最大值为65535。UID 在500 之前的账号是提供系统服务使用的,管理员新增的第一个普通用的UID 为500,然后依次是501、502⋯以此类推。
▶ 4、GID 组账号的唯一的识别号。用户组的信息被存放在/etc/group 文件中,root 组的GID 为0。管理员创建的第一个组的GID 为500,然后依次是501、502⋯以此类推。
▶ 5、GECOS 字段通常用来定义每个用户的个人信息。
▶ 6、用户的登录子目录用户登录后直接进入的目录,在默认的状态下,每个用户都有一个主目录。root 用户的主目录为/root,管理员创建的用户的主目录通常为/home/< 用户名>,如tom 用户主目录为/home/tom。
▶ 7、登录shell 用户登楼后运行的shell,此处出现的是默认的shell,大多数情况下是/bin/bash。如果用户只是系统通过该用户账号获取系统的某种服务,而不希望该用户能够登录Linux 工作站,可以将此登录shell 修改为/bin/false、/bin/true、/dev/null 和/sbin/nologin 等其中之一。
查看/etc/passwd 的内容: cat /etc/passwd
2.1.2 shadow
保存用户账号的密码。
每行记录了一个合法用户账号的数据。
▶ 在Linux 系统中通常使用影子口令机制(Shadow Password),用户的身份信息被存放在/etc/passwd 文件中,用户的口令信息加密后保存在另一个文件/etc/shadow 中,并只设置root 账号的可读属性,因而大大提高了系统的安全性能。
▶ Linux/Unix 采用了“shadow 文件”机制,将加密的口令转移到/etc/shadow 文件里,该文件为root 超级用户可读,同时/etc/passwd 文件的密文域显示一个x,从而最大限度地减少了密文泄漏的机会。
▶ 加密后的密码可以分为三段来看,被$ 分割。其中第一段就是表明散列算法的类型,第二段是系统为们密码添加的盐值(salt), 最后第三段才是映射完的散列值。
▶ 其中6 代表的是采用SHA-512 算法进行加密的。1 代表的是MD5 算法,5 代表的是SHA-256 算法等。
▶ sudo passwd root
Enter new UNIX password: (设置root 密码)
Retype new UNIX password: (重复密码)
▶ 在/etc/shadow 文件中有9 个字段,每个字段使用“:”分隔。
username:passwd:lastchg:min:max:warn:inactive:expire:flag
▶ 将原本/etc/passwd 文件中的密码移至/etc/shadow 文件中,而shadow 文件只允许管理员root 账户读取,可以提高系统的安全性。而且其中的密码是采用MD5 算法加密的,root账户也无法直接获得口令的内容,但是root 账户可以变更用户密码或停用每个账户。
▶ 可记录密码变更的时间。
▶ 可以设置密码使用的时间,以避免用户的密码变更过于频繁。
▶ 可以使用/etc/login.defs 文件来设置密码的安全性原则,例如密码的最小长度或密码最短的使用时间等。
2.2 常用命令
2.2.1 groupadd
添加用户组。
1 | -g 指定组ID号 |
sudo groupadd -g 2020 mygroup 新建用户组(指定gid)
sudo groupadd testgroup 新建用户组(没有指定gid) 会自动根据上一次组的编号加1
sudo groupadd -r group1 新建系统组账号 -r : 用来建立系统工作组,-r 创建的GID 会比定义在系统文件上/etc/login.defs 中的GID_MIN 小。
tail -n 5 /etc/group 查看最后5个用户组
tail -n 5 /etc/passwd 查看最后5个用户
2.2.2 groupdel
groupdel 命令用于删除指定的工作组,命令要修改的系统文件包括/ect/group 和/ect/gshadow。若该组中包括某些用户,则必须先删除这些用户后,方能删除组。
- sudo groupdel 组名
- sudo groupdel group1 删除组group1(不能有用户)
2.2.3 groupmod
命令更改群组识别码或名称。
- groupmod –n 新组名 旧组名
- groupmod -g 新gid 组名
- groupmod -go gid 新组名。
例:sudo groupmod -go 8888 group3,将组group3 的gid 限制为8888,而8888已经存在,并且8888 是另外一个组的gid 编号。此时,两个组共用同一个gid 编号。
1 | -g 指定GID |
2.2.4 groups
groups 用户名 : 显示用户所属的用户组
2.2.5 newgrp
newgrp 组名 : 切换用户所在用户组,登入另一个群组。使用newgrp 指令切换群组,必须是该群组的用户,否则将无法登入指定的群组。
2.2.6 gpasswd
用来管理组。
gpasswd 命令是Linux 下工作组文件/etc/group和/etc/gshadow 的管理工具,用于指定要管理的工作组。
1 | -a : 添加用户到组 |
- gpasswd -d stu2 student 将用户stu2 从student 组删除
- gpasswd –a stu2 student 将用户stu2 添加到student 组
- gpasswd -A stu2 student : 指定stu2为组student的管理员
- su - stu2 : 进入stu2的身份
- gpasswd -a stu3 student : 在stu2用户下使用此命令,将stu3加入studnet组,不需要root权限。
2.2.7 adduser
创建新用户。一问一答式。
2.2.8 useradd
创建新用户。
useradd 命令的使用格式:useradd [参数] 新建用户账号
1 | -b, --base-dir BASE_DIR 新账户的主目录的基目录 |
sudo useradd -m -d /home/test -G student,sudo -c “hello” -s “/bin/bash” -e “2025-1-1” stu2
建立stu2 账号,其主目录为/home/stu2、归属于student组、账号信息为general user、用户shell 为/bin/bash、账号有效期到2025 年12 月1 日。
sudo passwd stu2 : 为用户stu2创建密码
openssl passwd : 产生密码(加盐,重复,效果也不一样)
echo -n 34 : 回音,会返回34
echo -n 34 |openssl passwd -1 -stdin 产生密码(密码是34)(-1 代表加密方式)(加盐,重复,效果也不一样)
sudo useradd -N -g sudo -m -p ‘echo -n hadoop|openssl passwd -1 -stdin’ hadoop
创建用户hadoop,设置密码为hadoop,同时加入sudo主组,同步创建家目录。要求创建用户的同时设立密码。
批量加入用户和密码:
新建createUser.user,
sudo newusers < createUser.user
创建密码文件myPasswd.pwd
sudo chpasswd < myPasswd.pwd
注:linux 中,文件后缀名不重要。养成文件加后缀名的习
惯,可以更好地让使用者区分文件类型。
2.2.9 userdel
userdel 用户名 : 删除用户
userdel -r 用户名 : 删除用户的同时,将用户家目录和邮件池一并删除
2.2.10 passwd
passwd 用户名 : 修改用户名密码的信息
passwd 命令后面不接任何参数或用户名,则表示修改当前用户的密码。
1 | -l 锁定指定的账户 |
2.2.11 openssl passwd
1 | -salt |
Linux 系统中,用户可以利用openssl passwd 手动生成一个密码作为用户账号的密码。openssl passwd 用来计算密码hash 值。
▶ 语法格式:openssl passwd [option] passwd
▶ -1: 用MD5 加密算法
▶ -salt: 加盐,不使用随机产生的salt。-salt 不需要交互确认,
取盐的前两位,若盐相同,则加密密码相同。
▶ openssl passwd
▶ password:
▶ verifying -password:
▶ 生成:tTGWmli4MjAhM(每次都不一样)
▶ sudo usermod -p tTGWmli4MjAhM xx 用户名
▶ openssl passwd 12345
▶ openssl passwd 12345
▶ 没有使用参数,则表示使用默认的-crypt 加密。每次加密结
果均不同。
▶ openssl passwd -salt ’thisispasswd’ 123456
▶ openssl passwd -salt ’thisispasswd’ 123456
▶ salt:thisispasswd 要加密的密码:123456 则上面两条命令结
果相同。(只取盐值的前两位)
2.2.12 su & su -
1 | su |
2.2.13 id
id 用户名
查看用户和用户组的信息
2.2.14 finger
finger 用户名
查看用户信息
2.2.15 w&who&whoami
▶ w: 显示所有登录用户,在干什么
▶ who: 显示登录用户
▶ whoami: 显示当前用户名称
2.2.16 usermod
1 | usermod –L 用户名(同passwd –l 用户名锁定用户) |
2.2.17 gpasswd&usermod
gpasswd -a
- 每次只能为用户增加一个附加组,会保留原有的附加组。
gpasswd -d
- 将用户从一个指定的附加组中删除。
usermod -aG
- 为用户指定若干个附加组,会保留原有的附加组。
usermod -G
- 为用户指定一个附加组,同时会自动清除原有的所有的附加组。
一、常用命令
tail -n 5 /etc/group 查看最后5个用户组
tail -n 5 /etc/passwd 查看最后5个用户
id user1 查看user1的uid与组与附加组
su - stu2 : 进入stu2的身份
sudo passwd stu2 : 为用户stu2创建密码
openssl passwd : 产生密码(加盐,重复,效果也不一样)
echo -n 34 : 回音,会返回34
echo -n 34 | openssl passwd -1 -stdin 产生密码(密码是34)(-1 代表加密方式)(加盐,重复,效果也不一样)
sudo useradd -N -g sudo -m -p ‘echo -n hadoop|openssl passwd -1 -stdin’ hadoop
sudo newusers < createUser.user : 重定向输入,将createUser.user输入到newusers
二、 用户和用户组
在Linux 中,每个用户必须有一个主组。当创建账号时,系统会自动创建一个同名组作为该账户的主组。用户必须属于一个且只有一个主组。用户可以属于零个或者多个附加组。
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux 下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group 文件的更新。
2.1 文件
在Linux 中,万物皆文件,所以用户与组也以配置文件的形式保存在系统中,以下为用户和组的主要配置文件详解:
1 | /etc/passwd:用户及其属性信息(名称、UID、主组ID 等) |
2.1.1 passwd
用户账号文件。
该文件用于用户登录时校验用户的登录名、加密的口令数据项、用户ID(UID)、默认的用户分组ID(GID)、GECOS 字段、用户登录子目录。
- 该文件的每一行保存一个用户的资料,以及登录后使用的shell; 而用户资料的每一个数据项之间采用冒号分隔。
1
wl:x:1000:1000:wanglei„,:/home/wanglei:/bin/bash
▶ 1、登录名唯一性,它的长度一般不超过32 个字符,它们可以包括冒号和换行之外的任何字符。登录名要区分大小写。放在etc/passwd 文件的开头部分的用户是系统定义的虚拟用户bin、daemon。
▶ 2、加密的口令当编辑/etc/passwd 文件来创建一个新账号时,在加密口令字段的位置用x 代替。表示是一个经过加密处理的口令,加密后的密码放置在/etc/shadow 文件中,且该文件只能被root 组的账号访问。如果该字段显示“*”则表示对应账号停用。
▶ 3、UID 每个账号唯一的识别号,最大值为65535。UID 在500 之前的账号是提供系统服务使用的,管理员新增的第一个普通用的UID 为500,然后依次是501、502⋯以此类推。
▶ 4、GID 组账号的唯一的识别号。用户组的信息被存放在/etc/group 文件中,root 组的GID 为0。管理员创建的第一个组的GID 为500,然后依次是501、502⋯以此类推。
▶ 5、GECOS 字段通常用来定义每个用户的个人信息。
▶ 6、用户的登录子目录用户登录后直接进入的目录,在默认的状态下,每个用户都有一个主目录。root 用户的主目录为/root,管理员创建的用户的主目录通常为/home/< 用户名>,如tom 用户主目录为/home/tom。
▶ 7、登录shell 用户登楼后运行的shell,此处出现的是默认的shell,大多数情况下是/bin/bash。如果用户只是系统通过该用户账号获取系统的某种服务,而不希望该用户能够登录Linux 工作站,可以将此登录shell 修改为/bin/false、/bin/true、/dev/null 和/sbin/nologin 等其中之一。
查看/etc/passwd 的内容: cat /etc/passwd
2.1.2 shadow
保存用户账号的密码。
每行记录了一个合法用户账号的数据。
▶ 在Linux 系统中通常使用影子口令机制(Shadow Password),用户的身份信息被存放在/etc/passwd 文件中,用户的口令信息加密后保存在另一个文件/etc/shadow 中,并只设置root 账号的可读属性,因而大大提高了系统的安全性能。
▶ Linux/Unix 采用了“shadow 文件”机制,将加密的口令转移到/etc/shadow 文件里,该文件为root 超级用户可读,同时/etc/passwd 文件的密文域显示一个x,从而最大限度地减少了密文泄漏的机会。
▶ 加密后的密码可以分为三段来看,被$ 分割。其中第一段就是表明散列算法的类型,第二段是系统为们密码添加的盐值(salt), 最后第三段才是映射完的散列值。
▶ 其中6 代表的是采用SHA-512 算法进行加密的。1 代表的是MD5 算法,5 代表的是SHA-256 算法等。
▶ sudo passwd root
Enter new UNIX password: (设置root 密码)
Retype new UNIX password: (重复密码)
▶ 在/etc/shadow 文件中有9 个字段,每个字段使用“:”分隔。
username:passwd:lastchg:min:max:warn:inactive:expire:flag
▶ 将原本/etc/passwd 文件中的密码移至/etc/shadow 文件中,而shadow 文件只允许管理员root 账户读取,可以提高系统的安全性。而且其中的密码是采用MD5 算法加密的,root账户也无法直接获得口令的内容,但是root 账户可以变更用户密码或停用每个账户。
▶ 可记录密码变更的时间。
▶ 可以设置密码使用的时间,以避免用户的密码变更过于频繁。
▶ 可以使用/etc/login.defs 文件来设置密码的安全性原则,例如密码的最小长度或密码最短的使用时间等。
2.2 常用命令
2.2.1 groupadd
添加用户组。
1 | -g 指定组ID号 |
sudo groupadd -g 2020 mygroup 新建用户组(指定gid)
sudo groupadd testgroup 新建用户组(没有指定gid) 会自动根据上一次组的编号加1
sudo groupadd -r group1 新建系统组账号 -r : 用来建立系统工作组,-r 创建的GID 会比定义在系统文件上/etc/login.defs 中的GID_MIN 小。
tail -n 5 /etc/group 查看最后5个用户组
tail -n 5 /etc/passwd 查看最后5个用户
2.2.2 groupdel
groupdel 命令用于删除指定的工作组,命令要修改的系统文件包括/ect/group 和/ect/gshadow。若该组中包括某些用户,则必须先删除这些用户后,方能删除组。
- sudo groupdel 组名
- sudo groupdel group1 删除组group1(不能有用户)
2.2.3 groupmod
命令更改群组识别码或名称。
- groupmod –n 新组名 旧组名
- groupmod -g 新gid 组名
- groupmod -go gid 新组名。
例:sudo groupmod -go 8888 group3,将组group3 的gid 限制为8888,而8888已经存在,并且8888 是另外一个组的gid 编号。此时,两个组共用同一个gid 编号。
1 | -g 指定GID |
2.2.4 groups
groups 用户名 : 显示用户所属的用户组
2.2.5 newgrp
newgrp 组名 : 切换用户所在用户组,登入另一个群组。使用newgrp 指令切换群组,必须是该群组的用户,否则将无法登入指定的群组。
2.2.6 gpasswd
用来管理组。
gpasswd 命令是Linux 下工作组文件/etc/group和/etc/gshadow 的管理工具,用于指定要管理的工作组。
1 | -a : 添加用户到组 |
- gpasswd -d stu2 student 将用户stu2 从student 组删除
- gpasswd –a stu2 student 将用户stu2 添加到student 组
- gpasswd -A stu2 student : 指定stu2为组student的管理员
- su - stu2 : 进入stu2的身份
- gpasswd -a stu3 student : 在stu2用户下使用此命令,将stu3加入studnet组,不需要root权限。
2.2.7 adduser
创建新用户。一问一答式。
2.2.8 useradd
创建新用户。
useradd 命令的使用格式:useradd [参数] 新建用户账号
1 | -b, --base-dir BASE_DIR 新账户的主目录的基目录 |
sudo useradd -m -d /home/test -G student,sudo -c “hello” -s “/bin/bash” -e “2025-1-1” stu2
建立stu2 账号,其主目录为/home/stu2、归属于student组、账号信息为general user、用户shell 为/bin/bash、账号有效期到2025 年12 月1 日。
sudo passwd stu2 : 为用户stu2创建密码
openssl passwd : 产生密码(加盐,重复,效果也不一样)
echo -n 34 : 回音,会返回34
echo -n 34 |openssl passwd -1 -stdin 产生密码(密码是34)(-1 代表加密方式)(加盐,重复,效果也不一样)
sudo useradd -N -g sudo -m -p ‘echo -n hadoop|openssl passwd -1 -stdin’ hadoop
创建用户hadoop,设置密码为hadoop,同时加入sudo主组,同步创建家目录。要求创建用户的同时设立密码。
批量加入用户和密码:
新建createUser.user,
sudo newusers < createUser.user
创建密码文件myPasswd.pwd
sudo chpasswd < myPasswd.pwd
注:linux 中,文件后缀名不重要。养成文件加后缀名的习
惯,可以更好地让使用者区分文件类型。
2.2.9 userdel
userdel 用户名 : 删除用户
userdel -r 用户名 : 删除用户的同时,将用户家目录和邮件池一并删除
2.2.10 passwd
passwd 用户名 : 修改用户名密码的信息
passwd 命令后面不接任何参数或用户名,则表示修改当前用户的密码。
1 | -l 锁定指定的账户 |
2.2.11 openssl passwd
1 | -salt |
Linux 系统中,用户可以利用openssl passwd 手动生成一个密码作为用户账号的密码。openssl passwd 用来计算密码hash 值。
▶ 语法格式:openssl passwd [option] passwd
▶ -1: 用MD5 加密算法
▶ -salt: 加盐,不使用随机产生的salt。-salt 不需要交互确认,
取盐的前两位,若盐相同,则加密密码相同。
▶ openssl passwd
▶ password:
▶ verifying -password:
▶ 生成:tTGWmli4MjAhM(每次都不一样)
▶ sudo usermod -p tTGWmli4MjAhM xx 用户名
▶ openssl passwd 12345
▶ openssl passwd 12345
▶ 没有使用参数,则表示使用默认的-crypt 加密。每次加密结
果均不同。
▶ openssl passwd -salt ’thisispasswd’ 123456
▶ openssl passwd -salt ’thisispasswd’ 123456
▶ salt:thisispasswd 要加密的密码:123456 则上面两条命令结
果相同。(只取盐值的前两位)
2.2.12 su & su -
1 | su |
2.2.13 id
id 用户名
查看用户和用户组的信息
2.2.14 finger
finger 用户名
查看用户信息
2.2.15 w&who&whoami
▶ w: 显示所有登录用户,在干什么
▶ who: 显示登录用户
▶ whoami: 显示当前用户名称
2.2.16 usermod
1 | usermod –L 用户名(同passwd –l 用户名锁定用户) |
2.2.17 gpasswd&usermod
gpasswd -a
- 每次只能为用户增加一个附加组,会保留原有的附加组。
gpasswd -d
- 将用户从一个指定的附加组中删除。
usermod -aG
- 为用户指定若干个附加组,会保留原有的附加组。
usermod -G
- 为用户指定一个附加组,同时会自动清除原有的所有的附加组。
-------------本文结束感谢您的阅读-------------
本文链接: http://heathhou.github.io/2020/12/16/Ubuntu%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B02%E7%94%A8%E6%88%B7%E5%92%8C%E7%94%A8%E6%88%B7%E7%BB%84/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!