管理用户账号和组账号
用户账号:
超值用户 管理员 root 默认对本机拥有最高权限的账户。在系统中是唯一的。
普通用户:一般都是由管理员创建,拥有一定的权限,拥有的权限是受限的。一般只在自己的家目录当中拥有完整的权限。可以正常登录系统。
程序用户:在安装软件时,有点应用程序需要创建一些账号来保证程序的正常运行,就会创建一个程序账户,程序账户是一些特定的低权限的账户,而且这些账户是不能登录到系统当中的。作用:保证程序的正常运行。
UID:用户的标识号,创建用户的时候可以指定,也可以系统自动分配。但是唯一,不能重复。
GID:组表示,创建用户的时候可以指定,也可以自动分配,也是唯一,不能重复。
根据uid来区分:
管理员的uid 0
普通用户的uid 1000
程序用户的uid 1~999
判定一个用户是否为管理员,以uid为标准,uid=0就是管理员。
root:x:0:0:root:/root:/bin/bash
root:用户账号的名称
x:用户密码的占位符,无实意。
第一个0是uid号
第二个0是gid号
root:用户的全名,一般情况都是和用户账号的名称一致
/root:用户的家目录所在的位置
/bin/bash:用户登录的shell,shell默认的解释器就是bash,只有是/bin/bash才可以登录系统。
/sbin/nologin或/bin/false,表示不可以登录系统。一般程序用户的shell都是/sbin/nologin或/bin/false。
dn:x:1001:1001::/home/dn:/bin/bash
/etc/passwd: 保存的是用户信息
/etc/shadow:用户的密码和账户的有效期。
root:$6$hVRwXRISavc6qL4V$FBM9fIj8xsWCPZnG2CyPvu60q/mxYBwA3t6Fdvqu/Lfrc0hDjvZuNCHHcyw5fPzBI7uFlNu98MlUxX4y9dXJD1::0:99999:7:::
字段1:用户的账号名称
字段2:用户的密码,MD5加密的方式。*表示不能登录系统,!!表示密码为空(不是真的为空)
字段3:表示上一次修改密码的时间。19864,表示从1970-1-1到2024年5-21号过了多少天。
字段4:密码的最短有效天数,0表示不限制
字段5:密码的最长有效天数,99999表示不限制
字段6:提前多少天告诉用户,密码将会过期,默认7.
字段7:密码过期之后多少天会禁用该用户
字段8:账号的失效了多久,为空表示永不失效
字段9:保留字段,预留字段,无实意。
这两个文件在工作中不要去动。
添加用户:
useradd:
-u:指定uid号。已被占用的uid不能被指定
-d:指定用户的家目录的位置。(一般是不动的)
-e:指定用户的账户失效的时间,格式yyyy-mm-dd。
-M:创建用户时,不建立家目录
-s:创建用户时,指定用户的登录shell
shell就是计算机语言,bash就是翻译器
创建用户密码:
passwd:
-d:清空指定用户的密码。(慎用)
-l:锁定用户,无法登录。(面试题)
-u:解锁用户
-S:查看用户的状态,用户是否被锁定。
修改密码的另一种方式:
echo 123456 | passwd -- stdin id
修改账号的属性:
usermod:
-u:修改用户的uid
-d:修改用户的家目录地址(没人用)
-e:修改用户的账号失效时间 yyyy-mm-dd
-s:修改用户登录的shell
-L:锁定用户
-U:解锁用户
锁定用户的两种方式:
passwd -l
usermod -L
删除用户:
userdel :
userdel 用户名:只删除用户,不删除家目录
userdel -r 用户名:删除用户,同时也删除家目录。
添加或删除组进程:
gpasswd:
-a:向组内添加组成员
-d:从组内删除用户
-M:向组内一次多个添加
添加可以添加多个,删只能一个一个删.
配置文件:
/etc/profile 全局配置,对所有用户都生效。source重启后也对所有生效
~/.bash_profile 用户登录时会读取的配置,只有自己生效
~/.bashrc 用户的配置文件,只对自己生效,每一次新打开一个shell就会读取这个文件
~/bash_logout 用户退出当前shell的时候会执行的配置
每次登录的shell都是一个子shell,每个之间都被隔离。
读取顺序:/etc/profile---->~/.bash_profile------>~/.bashrc------->~/bash_logout
权限管理:
查询用户身份标识:
id
查询uid gid 所属组
查询已登录到主机的用户信息:
w who users
u:所有者
g:所在组
o:其他用户
a:所有用户 a+x
八进制算法替换了
421
r read 读权限 4
w write 写权限 2
x 执行 执行权限 1
chmod 赋权命令
chomod 644 文件名
-rw-r--r--. 1 root root 35288711168 5月 17 13:39 xy102.txt
递归赋权:
chmod -R 641 目录名 只有一层目录,目录中的所有都会生效,级联目录只有最后一个生效。
353
chmod 353
所有者有写和执行的权限
所在组有读和执行的权限
其他用户有写和执行的权限
umask 用来设定文件和目录的默认权限。
文件的默认权限 666
目录的默认权限 777
面试题:
创建文件,默认就是不给你执行权限
创建目录,一定要有执行权限,没有执行权限,就不能cd进入这个目录。
我要修改一个文件的默认权限,怎么办?
umask 如果是文件,无论怎么改umask,都没有执行权限。
修改所有者和所在组:
chown 前提:用户和组都要存在,要先创建好。
chown root:root 文件名 所有者和所在组一起变
chown root.root 文件名 所有者和所在组一起变
chown root 文件名 只修改所有者
chown .root 文件名 只修改所在组
chown :root 文件名 只修改所在组
chown -R root:root 目录