作业:
1、一条命令快速修改密码
echo 123456 | passwd --stdin root
--stdin 是用于获取标准输入,不可忽略
2、企业服务器,某天发现系统访问很慢,要查看系统内核日志,命令?
tail -n 10 /var/log/messages
/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
/var/log/wtmp 该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件
3、如何在Linux系统/tmp目录快速创建1000个目录,目录为jfedu1、jfedu2…以此类推,不断增加。
mkdir -p /tmp/jfedu{1,100}
逗号隔开只创建1和100;用…则创建1~100
3.1 Linux 用户及组
Linux操作系统对多用户的管理是非常繁琐的,所以用组的概念来管理用户变得简单,每个用户可以在一个独立的组,每个组可以有零个或多个用户,Linux系统用户是根据用户ID来识别的,默认用户ID长度为32位。默认ID编号从0开始,为和老式系统兼容,限制用户ID在60000以下。用户总共分为三类:root用户(ID0)、系统用户(ID1~499)、普通用户(ID500以上)。
3.2 Linux 用户管理
Linux用户在操作系统中可以进行日常管理和维护,设计相关配置文件如下:
/etc/passwd:保存用户信息
/etc/shdaow:保存用户密码(以加密形式保存)
/etc/group:保存组信息
/etc/login.defs:用户属性、密码过期时间、密码最大长度限制等
/etc/default/useradd:显示或更改默认的useradd配置文件
如需要创建新用户,可使用命令useradd,创建用户同时会创建一个同名的组,默认用户属于这一个主组。
useradd boy 命令创建用户boy,会根据如下步骤进行操作:
1、etc/passwd 文件中加用户信息
2、如使用passwd 命令创建密码密码会被加密保存在/etc/shdaow中
3、为boy 创建家目录/home/boy
4、将/etc/skel中的.bash开头的文件复制到/home/boy家目录
5、创建与用户名相同的boy组,boy用户默认属于boy同名组
6、boy组信息保存在/etc/group配置文件中
使用useradd命令创建用户时,可以支持以下参数:
-b:指定新账户家目录
-G:将新用户添加至别的组,从而获取一定权限
-p:加密后的新账户密码
-r:创建一个系统(system)账户
-s:新账户的登陆
-u:新账户的uid
useradd案例:
(1)新建boy用户,并加入到boy1、boy2附属组
useradd -G boy1,boy2 boy
(2)新建boy用户,并指定新的家目录,同时指定登录的shell
useradd -b /tmp/ -s /bin/sh
3.3 Linux 组管理
通过命令groupadd、groupdel、groupmod来对组进行管理,参数使用如下:
groupadd用法:
-f:如果组已存在则成功退出,并且如果GID已存在则取消-g
-g:为新组使用GID
-p:为新组使用此加密过的密码
-r:创建一个系统账户
gropmod用法:
-g:将ID改为GID
-n NEW_NAME OLD_NAME:更改组名
-p:将密码更改为(加密过的)PASSWORD
groupdel boy:删除boy组
groupadd案例:
(1)groupadd创建boy组
groupadd boy
(2)groupadd创建boy组,并指定GID为1000
groupadd -g 1000 boy
(3)创建一个名为jiangfeng的system组
group -r jiangfeng
groupmod案例
(1)修改组名称,将boy改为girl
groumod -n girl boy
(2)修改GID号,将原girl组gid改为1000
group -g 1000 girl
3.4 Linux 用户及组案例
useradd用于创建用户,新建完后可用usermod来修改用户组的属性参数如下:
-g:强制使用GROUP为新主组
-G:修改用户所属属组
-a:将用户追加到-G中提到的属组中,并不从其他组中删除此用户.
-l:新的登录名
-L:锁定用户账号
-d:用户新目录
-m:将家目录内容移至新位置(仅与-d一起使用)
usermod案例:
(1)将boy用户属组修改boy1、boy2
usermod -G boy1,boy2 boy
(2)将boy加入到boy3、boy4附属组、原组保留
usermod -G -a boy3,boy4 boy
(3)修改boy用户,并指定新的家目录,同时指定其登录的shell
usermod -d /tmp/ -s /bin/sh boy
(4)将boy用户名修改为girl
usermod -l girl boy
userdel案例:
使用userdel可以删除指定用户及用户的邮箱目录或者SELinux映射环境,参数如下
userdel boy:保留用户的家目录
userdel -r boy :删除用户及家目录,用户login系统无法删除
强制删除用户及用户家目录,不论是否login系统
3.5 Linux 权限管理
Linux中文件及文件夹权限至少三种,常见权限如表3-1
权 限 | 对文件的影响 | 对目录的影响 |
---|---|---|
r(读取) | 可读取文件内容 | 可列出目录内容 |
w(写入) | 可修改文件内容 | 可在目录中创建删除内容 |
x(执行) | 可作为命令执行 | 可访问目录 |
目录必须拥有x权限,否则无法查看内容 |
3.6 chown 属主及属组
修改某个用户、组对文件夹得属主和属组用chown,案例如下:
(1)修改boy.net文件夹所属用户为root,-R参数表示处理所有得文件及文件夹
chown -R root boy.net
(2)修改boy.net文件夹所属组为root
chown -R :root boy.net
chgrp -R root boy.net
3.7 chmod 用户及组权限
修改某个用户、组对文件夹的权限使用chmod,其中-、+、=,代表去除、加入、等于所对应的权限,案例如下:
(1)授予用户对boy.net目录拥有rwx权限
chmod -R u=rwx boy.net
(2)撤销用户、组、其他人对boy.net目录拥有x权限
chmod org+x boy.net
3.8 Linux 特殊权限及掩码
Linux目录默认权限为755,文件为644,不同的原因是掩码umask导致的。
Linux中每一个终端都有一个umask属性,它可以用来确定新建文件、目录的默认权限。系统默认掩码为022。系统创建文件和目录的权限为666和777,权限开放大,设置权限掩码后,默认的文件和目录权限减去umask才是真实权限。
可通过umask查看权限掩码,umask -S 023 设定umask值为023
Linux权限中除普通权限外还有表3-2所示的三个特殊权限
权 限 | 对文件的影响 | 对目录的影响 |
---|---|---|
suid | 以文件所属用户身份去执行,而非执行文件的用户 | 可列出目录内容 |
sgid | 以文件所属组的身份去执行 | 在该目录中创建任意新文件的所属组与该目录的所属组相同 |
sticky | 无 | 对目录拥有写入权限的用户仅可以删除自己其拥有的文件,无法删除其他用户拥有的文件 |
Linux中设置特殊权限方法如下:
1、设置suid:chmod u+s boy.sh
2、设置sgid:chmod g+s boy.sh
3、设置sticky:chmod o+t boy.sh
特殊权限与设置普通权限一样,可以使用数字表示:suid:4、sgid:2、sticky:1
命令如:chmod 4755 /bin/su。对目录授予特殊权限s的权限。Linux系统中s权限的应用常见包括 su、passwd、sudo
作业:
1、某互联网公司职能及员工信息表,如表所示,请在Linux系统中创建相关员工,并把员工加入到部门(创建对 )。
部门 | 职能 |
---|---|
讲师部(teacher) | jfwu,jfcai |
市场部(market) | jfxin,jfqi |
管理部(manage) | jfedu,jfteach |
运维部(operater) | jfhao,jfyang |
groupadd teacher
useradd -G teacher jfwu
2、使用useradd创建用户并通过-p参数指定密码,设定完密码需通过系统能正常验证并登陆。
useradd -p 123456 boy
3、小王公司服务器,使用Root用户通过SecureCRT远程登陆后,如图5-3所示,发现登录终端变成bash-4.1#,是什么原因导致?以及如何修复为正常的登录SHELL环境,请写出答案
在另外一个用户那里把四个.bash文件复制到.bash文件缺失的用户目录里说白了,之所以出现这个问题就是.bash文件缺失
4、批量创建1~100个用户,用户名以jfedu开头,后面紧跟1、2、
for i in {1..100};do
useradd jfedu$i
echo "add jfedu$i user finish"
done
5、shell脚本批量添加20个用户,用户名为user1-20,密码为user后跟5个随机字符
for i in {1..10};do
USERNAME=user$i
PSASSWD =user`cat /dev/random | head -n 1 | cd5sum | head -c 5`
useradd $USERNAME
echo $PASSWD | passwd --stdin $USERNAME
done