赞
踩
1.保存用户信息:/etc/passwd
[root@localhost ~]# grep sumeng /etc/passwd
sumeng:x:1000:1000::/home/sumeng:/bin/bash#各字段的含义--用户名:密码保留字段(无实际含义):用户id:所属基本组id:用户说明信息:用户家目录:用户登录shell
#用户组id:用户的唯一标识
#所属基本组id:表明用户的基本组是谁
2.保存用户密码:/etc/shadow
[root@localhost ~]# grep sumeng1 /etc/shadow
sumeng1:!!:19436:0:99999:7:::#第二个字段为密码字段
3.组信息文件:/etc/group
4.家目录:/home--普通用户的家目录存放在该目录下,root用户的家目录为/root
5.家目录的模板文件:/etc/skel
[root@localhost ~]# cd /etc/skel
[root@localhost skel]# touch ceshi
[root@localhost skel]# useradd newuser
[root@localhost newuser]# cd /home/newuser
[root@localhost newuser]# ls
ceshi
6.用户默认属性配置文件:/etc/login.defs
超级管理员用户 -- id为0
程序系统用户 -- id一般为1-999
普通用户 -- id为1000以上
7.主要控制用户初始化的配置文件
.bash_profile | 用户每次登录时执行 |
.bashrc | 每次进入新的Bash环境时执行 |
.bash_logout | 用户每次退出登录时执行 |
.bash_history | 记录存放上次注销前使用的历史命令 |
8.shell的配置文件以及区别
/etc/profile | 配置全局环境变量,影响所有用户 |
~/.bash_profile | 配置个人环境,影响一个用户 |
/etc/bashrc | 配置全局的别名或者shell选项,影响所有用户 |
~/.bashrc | 配置个人别名或者shell选项,影响一个用户 |
useradd命令:新建用户
常见用法:
1.没有指明组,会自动创建与用户同名的组
[root@localhost shell-test]# useradd sc1
[root@localhost shell-test]# id sc1 #id命令用于显示用户id以及所属组群id
uid=1019(sc1) gid=1019(sc1) 组=1019(sc1)
2.指定组--可以拥有组的所有权限
-g:指定基本组,基本组只有一个
-G:指定附加组,可以有多个
[root@localhost shell-test]# useradd -g sc1 -G sc sc2 #指定基本组为sc1,附加组为sc
[root@localhost shell-test]# id sc2
uid=1020(sc2) gid=1019(sc1) 组=1019(sc1),1018(sc)[root@localhost newuser2]# useradd -G sumeng,sumeng1 su1 #指定多个附加组
[root@localhost newuser2]# id su1
uid=2028(su1) gid=2028(su1) 组=2028(su1),1000(sumeng),1006(sumeng1)
3.创建用户时指定id
-u:指定该用户的UID
[root@localhost shell-test]# useradd -u 2000 sc3
[root@localhost shell-test]# id sc3
uid=2000(sc3) gid=2000(sc3) 组=2000(sc3)
[root@localhost shell-test]# useradd sc4 #默认情况下不指定id,会在前一个基础上加1
[root@localhost shell-test]# id sc4
uid=2001(sc4) gid=2001(sc4) 组=2001(sc4)
4.指定用户说明信息
-c:添加用户说明
[root@sanchuang shell-test]# useradd -c "test sc5" sc5
[root@sanchuang shell-test]# grep sc5 /etc/passwd
sc5:x:2002:2002:test sc5:/home/sc5:/bin/bash #第五个字段为用户的说明信息
5.指定用户的家目录
-d:指定用户的家目录,默认为/home/username,指定时写绝对路径
注意:普通情况下,一个普通用户只能在系统默认家目录和/tmp目录下创建文件,若指定家目录为别的目录,可能导致用户在创建文件时因为权限不足导致失败
[root@localhost shell-test]# useradd -d /opt/home/sc6 sc6
[root@localhost shell-test]# grep sc6 /etc/passwd
sc6:x:2003:2003::/opt/home/sc6:/bin/bash #第六个字段为用户家目录
[root@localhost shell-test]# su - sc6
[sc6@localhost ~]$ pwd
/opt/home/sc6
[sc6@localhost ~]$ mkdir /opt/test #权限不足,无法新建
mkdir: 无法创建目录"/opt/test": 权限不够
6.指定用户的登录shell--一登录就执行的shell
-s:指定用户的登录shell,默认为/bin/bash
[root@localhost ~]# useradd -s /bin/sh sc7
[root@localhost ~]# grep sc7 /etc/passwd
sc7:x:2004:2004::/home/sc7:/bin/sh #最后一个字段为用户的登录shell[root@localhost ~]# su - sc7
-sh-4.2$
执行useradd命令时,在后台所做的工作如下:
1.修改/etc/passwd
zhourenjie123:x:6677:6677:wudangpai:/home/zhourenjie123:/bin/bash2.修改/etc/shadow
zhourenjie123::19493:0:99999:7::: #设置密码为空即密码字段为空3.修改/etc/group
wudangpai:x:6677:4.新建家目录
mkdir /home/zhourenjie1235.复制环境变量初始化脚本到家目录下
cp /etc/skel/.* /home/zhourenjie123/6.新建一个邮箱--邮箱名一般与用户名同名
touch /var/spool/mail/zhourenjie1237.修改家目录相关的权限
[root@localhost skel]# chown zhourenjie123:wudangpai /home/zhourenjie123/
[root@localhost skel]# chmod 700 /home/zhourenjie1238.修改邮箱相关的权限
[root@localhost skel]# chmod 660 /var/spool/mail/zhourenjie123
[root@localhost skel]# chown zhourenjie123:mail /var/spool/mail/zhourenjie123
passwd命令:更改用户密码
1.root用户可以为别的用户设置密码,可以不遵循密码设置规则;普通用户只能修改自己的密码,直接输入passwd命令即可,修改密码时必须遵循密码的设置规则
[root@localhost ~]# passwd sumeng1
更改用户 sumeng1 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。[root@localhost ~]# grep sumeng1 /etc/shadow
sumeng1:$6$zb7mza/g$1ALKsveCO4ktHXOt3o37opJMFIsttBYbfmgCQ.x.YKvwtgdvk.6FJICOukvLvzaqF0mxC9o8Glviz5mqaeyuI.:19468:0:99999:7:::
2.不通过手动输入,同伙管道符号直接设置密码
[root@localhost ~]# echo "abc123"|passwd sumeng1 --stdin
更改用户 sumeng1 的密码 。
passwd:所有的身份验证令牌已经成功更新。
3.锁定用户无权更改其密码,仅能通过root用户更改
-l:暂时锁定用户,其实就是修改了用户的密码,在/etc/shadow文件中用户的密码字段前添加“!”,使其密码失效
[root@localhost sc6]# passwd -l sc7
锁定用户 sc7 的密码 。
passwd: 操作成功
[root@localhost sc6]# grep sc7 /etc/shadowsc7:!!$6$TaWQx3sp$Jp87zZXjwuFeta6sOP2nFUYtn1jxslKzR2xthsVvlIZyV9omVJx9WeCWFMh2D./fqdPZvYIlCQxq9aX6C36HQ0:19444:0:99999:7:::
usermod命令:修改用户的各种设定
常用选项:
-s (shell) | 更改用户的登录shell |
-g (组群) | 更改基本组 |
-G (组群) | 更改附加组 |
-u (UID) | 更改用户的id |
-d (登录目录) | 更改用户的家目录 |
-c (备注) | 更改用户的说明信息 |
-L | 锁定用户密码,使密码无效 |
userdel命令:删除用户账号
用法:
userdel username | 删除username用户,不删除家目录 |
userdel -r username | 删除username用户,并且删除家目录信息 |
su命令:切换用户,用于变更为其他使用者身份
用法:
su username | 直接切换到username用户,但不切换当前的环境 |
su - username | 直接切换到username用户,并且切换到username环境 |
[root@localhost ~]# export USER_TEST="sumeng" #设置环境变量
[root@localhost ~]# env|grep sumeng #在当前环境里过滤出新设置的环境变量
USER_TEST=sumeng
[root@localhost ~]# su sumeng
[sumeng@localhost root]$ env|grep sumeng #使用su切换,能找到USER_TEST=sumeng
[sumeng@localhost root]$ exit
exit
[root@localhost ~]# su - sumeng #使用su - 切换,未找到
上一次登录:五 4月 21 11:41:08 CST 2023pts/0 上
[sumeng@localhost ~]$ env|grep sumeng
命令 | 作用 |
last | 查看系统近期用户的登录情况 |
lastlog | 查看系统中用户有没有登录过,及登录过用户最近的登录时间 |
1.文件读写执行权限
r --read | 数字表示:4 文件:查看内容 文件夹:ls |
w --write | 数字表示:2 文件:修改文件内容 文件夹:新建、删除、移动 |
x --execute | 数字表示:1 文件:允许运行程序 文件夹:有执行权限才能使用cd切换 |
默认情况下,一个普通用户只能在家目录或者tmp目录下创建文件
2.文件归属权限
属主(ower):拥有该文件或目录的用户--u
属组(group):拥有该文件或目录的组账号--g
其他人(other):除了属主和属组的其他人--o
3.文件类型 -- 文件详细信息的第一个字符
- | 普通文件 |
d | 目录 |
l | 链接文件--link |
s | socket文件 |
p | pipe管道 |
c | 字符设备文件 |
b | 块设备文件 |
文件详细信息的第一列表示权限,第1个字符为文件类型,第2-10个字符,三个字符一组,分别表示属主、属组、其他人的权限
常见用法
例:
[root@localhost shell-test]# ll test #查看当前文件的详细信息
-rw-r--r--. 1 root root 0 3月 27 22:12 test#给test的属主添加执行权限
chmod u+x test
#给test的属主去除执行权限
chmod u-x test
#直接写明属主的权限
chmod u=rwx test
#对属主与属组的权限进行修改--属主去除执行权限,属组添加执行权限
chmod u-x,g+x test
#使用数字修改权限--属主拥有读写权限,属组与其他人拥有读的权限
chmod 644 test
#修改目录权限,即递归修改下面文件以及子文件夹的权限,使用-R选项递归修改
chmod 777 shell-test/ -R
1.修改属主
#test.sh文件的属主原本为root,修改为sc1
[root@localhost shell-test]# ll test.sh
-rwxr--r--. 1 root root 32 4月 10 23:50 test.sh
[root@localhost shell-test]# chown sc1 test.sh
[root@localhost shell-test]# ll test.sh
-rwxr--r--. 1 sc1 root 32 4月 10 23:50 test.sh #第3列表示文件的属主
2.修改属组
#将test.sh文件的属组修改为sc3
[root@localhost shell-test]# chown :sc3 test.sh
[root@localhost shell-test]# ll test.sh
-rwxr--r--. 1 sc1 sc3 32 4月 10 23:50 test.sh #第4列表示文件的属组
3.修改属主与属组
#将test.sh文件的属主修改为sc3,属组修改为sc6
[root@localhost shell-test]# chown sc3:sc6 test.sh
[root@localhost shell-test]# ll test.sh
-rwxr--r--. 1 sc3 sc6 32 4月 10 23:50 test.sh
sudo命令:授权给普通用户去执行很多重要命令(代替root用户去执行)。debian、Ubuntu系统都会有一个超级普通用户,使用sudo就可以执行任何命令。sudo敲的每一个命令都会记录在日志文件里。
sudo -l:可以查看当前用户有哪些sudo的权限
sudo的配置文件:/etc/sudoers,如何编写该配置文件?
sc1 ALL=(ALL) NOPASSWD:ALL
#第一列写想要授权的用户名
#第一个ALL表示允许任何终端、机器访问sudo,一般就表示本机
#第二个ALL表示sudo命令可以允许以任何用户身份去执行
#第三个ALL表示可以执行任何命令
#NOPASSWD表示使用sudo命令执行时无需输入用户密码
例:
1、sumeng ALL=(ALL) ALL #表示sumeng用户可以在这台主机上执行任何用户的任何命令,但是使用sudo执行时需要输入sumeng用户的密码
2、sumeng ALL=(ALL) NOPASSWD:ALL #表示sumeng用户,可以在这台主机上执行任何用户的任何命令,无需输入sumeng用户的密码
3、%sanchuang05 ALL=(ALL) NOPASSWD:ALL #表示sanchuang05这个组的用户在这台主机上可以执行任何用户的任何命令,组名前面要加%,无需输入密码
4、sumeng ALL=(ALL) /bin/chown,/bin/passwd #表示sumeng用户在这台主机上,拥有chown,passwd命令执行授权--针对命令授权,命令路径写绝对路径。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。