linux帮助|编辑器|基本权限
那么我们学习了这么多命令 又有那么多参数 该如何记忆呢?
帮助
怎么查看命令帮助
ls --help
man ls
man 的类型章节 重点 1 用户命令 5 配置文件 8 管理员命令
帮助的阅读方法
-
...代表可重复
-
[]代表可选择
-
{}<>代表必选项
-
|代表其中之一
info
类似浏览网页 有连接 比man更全面
TAB寻找*连接
?帮助
man 和 info 也有搜索功能
rpm包自带的帮助文档
/usr/share/doc/
网络
vim 编辑器
模式切换:
-
编辑模式
-
命令模式
-
命令行模式
字符操作
-
i 当前插入
-
I 行首插入
-
a 当前字符之后插入
-
A 行尾插入
-
o 下一行插入
-
O 上一行插入
-
x 向后删除一个字符
-
X 向前删除一个字符
-
u 撤销一步
-
U 撤销所有更改
-
c 剪切
-
行操作
-
^ 行首 $行尾
-
dd 删除一行 Ndd
-
yy 复制一行 Nyy
-
p 将复制行粘贴 P上粘
词操作
-
dw 删除一个词
-
yw 复制一个词
块操作
-
d$ 删至行尾 d^ 删至行首
-
y$ 复制至尾 y^ 复制至首
-
v 模式
进入v模式 移动光标选择区域
VIM命令行操作
-
:%s/old/new/g
-
:set nu/nonu
-
:e! 重新读入
-
/ 正查
-
? 反查
-
: !ls 调用系统命令
vim 的练习作业
vimtutor
如果乱码 用gedit打开 另存为UTF-8
用户管理 (增删改查)
用户都存储哪些信息?
用户名 密码 用户 识别码 UID 组识别码 GID 家目录 HOME shell 备注
linux系统是支持多用户的系统
用户分为三种以UID来区分
超级用户 UID = 0 在系统中拥有至高无上的权限.
系统用户 UID 1-499 bin,ftp,mail等,不具备登录系统的权利,却是系统运行不可缺少的.
普通用户 UID 500-60000 管理员建立的用户.密码和权限都由管理员制定.
群组都存储哪些信息?
组名 组密码 组识别码 组成员
Linux系统中的组是把一系列具有相同属性的用户加以规划后的集合.
组也是分种类的 用GID来标识
超级组 GID = 0
系统组 GID = 1-499
普通组 GID = 500-60000
添加 修改 删除 登录
useradd
-
-u UID
-
-d 主目录
-
-g GID
-
-G 附属组
-
-s 登录使用的SHELL
passwd
-
-d 删除口令
-
-S 查看密码状态
-
-x 密码最大时间
-
-n 密码最小时间
-
-w 密码警告时间
-
-i 密码过期锁定时间
-
--stdin 非交互添加密码
echo "123" | passwd --stdin seker
id
查看验证
主要属组与附属组
主要属组:每一个用户都必须有且只有一个主要属组,因为文件在建立时就会使用到主属组
附属组 :每一个用户可以加入其它组,这些组被称为用户的附属组
需要注意的是一个用户建立时,如果不明确指定,则系统自动建立一个与用户名相同的群组
同时将这个群组也设置为该用户的附属组
他们都是为了linux内的系统权限分派而存在的.
用户创建的流程
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
mkdir /home/username
cp /etc/ske1/.* /home/username
chown username:username /home/username
演示手动创建用户
建立用户后如何更改
usermod
-
-u UID
-
-d 主目录
-
-g GID
-
-G 附属组
userdel
-
-r 删除主目录及其文件
su 切换用户
以root用户切换其他用户则不需要密码
而其他用户做任何切换都需要密码
su -
加 - 与不加 - 的区别
-
加- 方法切换身份,相当于重新登陆,此时用户的家目录和PATH等信息会发生改变,和直接用root登陆一致
-
不加- 切换身份后用户的家目录和PATH仍然是原先用户的家目录和PATH
[seker@lan2 ~]$ id
uid=502(seker) gid=503(zorro) groups=502(seker),503(zorro)
[seker@lan2 ~]$ su root
口令:
[root@lan2 seker]# ifconfig
bash: ifconfig: command not found
[root@lan2 seker]# pwd
/home/seker
[root@lan2 seker]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/seker/bin:/home/seker/bin
[root@lan2 seker]# exit
exit
[seker@lan2 ~]$ id
uid=502(seker) gid=503(zorro) groups=502(seker),503(zorro)
[seker@lan2 ~]$ su - root
口令:
[root@lan2 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:F9:41:37
[root@lan2 ~]# pwd
/root
[root@lan2 ~]#
这是为什么呢?我们都知道,有些命令是只有管理员才能使用的,一般用户没有权限.就像本例中的 ifconfig.
用第二种方法切换身份,相当于重新登陆,此时用户的家目录和PATH等信息会发生改变,和直接用root登陆一致;
但第一种情况,切换到root身份后用户的家目录和PATH仍然是原先一般用户的家目录和PATH,
我们知道,PATH里设置的是一些路径,指向一些目录,这些目录包含着一些常用的工具.
如果你的PATH没有设置相应的路径,那么直接运行ifconfig系统肯定会找不到ifconfig工具在哪里.所以会提示:没有这个命令.
切换组
gpasswd sekergroup
su - zorro
sg - sekergroup
xxx xxx
id
gpasswd -r sekergroup 清除密码
登录后检查
whoami 查看当前用户身份
who 登录本机用户及来源,+表示mesg是否开启接收的标志
w 登录用户在做什么
id 验证用户和查看用户的群组
users 都有哪些登录用户
退出登陆
exit 退出登陆shell
logout 退出非登录shell
演示
[root@lan2 ~]# bash
[root@lan2 ~]# logout
bash: logout: not login shell: use `exit'
[root@lan2 ~]#
基本权限
对于一个文件他具备
-
读r
-
写w
-
执行x
- rwx rwx rwx root root
第一个字符标识文件的类型,
之后9个字符,每三个为一组,分别对应后面的用户和组所具有的权限
第一个root是用户 第二个root是组 前两组就与此对应
那么最后一组是给谁用的呢?
画个系统用户集合图
三个权限:
-
第一部分:是所属用户(属主user),
-
第二部分:是用户属组group,
-
第三部分:剩余部分则是第三组权限,我们称它为other,也就是既不是属主又不是属组中的成员
文件的:
r (read)对应的系统命令 cat
w (write)对应的系统命令 vi echo >
x (eXcute)执行 例如 ls
目录的权限说明:
-
x 进入目录 cd 只能进入目录
-
rx 读目录里的内容(目录里存放着其包含的文件和子目录名字) cd + ls 可进入目录并列表
-
wx 删除和移动目录中的文件和子目录 mv rm 可操作目录和子目录和文件
获取权限的流程
开始 --_> root --> 给予所有权限 -------/
|--> user --> 分派user位权限-------/结束
|--> group--> 分派group位权限------/
|--> other--> 分派other位权限-----/
更改文件拥有者
chown user file 更改属主
chown :group file 更改属组
chown user:group file 主和组一同更改
-R 参数 递归更改
更改文件权限 (两种方式 字符和数字)
字符模式
赋值操作
chmod u=rwx file
chmod g=rx file
chmod o=r file
组合操作
chmod ug=rw file
chmod u=rwx,g=rx,u=x file
chmod a=rwx file
加减运算
chmod +x file
chmod ugo-x file
数字模式
rwx rwx rwx
421 421 421
7 7 7
3=1+2; 5=4+1; 6=4+2;7=4+2+1
chmod 644 file
chmod 755 dir
系统默认权限
umask
[root@lan2 seker]# umask
0022
[root@lan2 seker]# mkdir mask022_dir
[root@lan2 seker]# touch mask022_file
[root@lan2 seker]# umask 002
[root@lan2 seker]# mkdir mask002_dir
[root@lan2 seker]# touch mask002_file
[root@lan2 seker]# ll mask0* -d |awk '{print $1,$NF}'
drwxrwxr-x mask002_dir
-rw-rw-r-- mask002_file
drwxr-xr-x mask022_dir
-rw-r--r-- mask022_file
[root@lan2 seker]#
【课后练习】
第二天练习
1.
1).手动建立两个用户 oracle 和 webapp
2).建立一个uplooking组,将这个组设置为 oracle 和 webapp 用户的附加组
3).修改oracle的家目录为 /oracle ,修改webapp的家目录为 /webapp
4).将oracle用户的登录shell改为ksh,将webapp用户关闭掉,禁止他登陆
5).为oracle组添加密码,切换到webapp用户,将webapp的主组切换成oracle,测试完毕后删除组密码
6).开启一个终端用oracle用户登录,再开启一个新的终端用root删除oracle用户,是否能删
7).将uplooking组,oracle,webapp全部删除.
2.su 加 - 与不加 - 的区别
[seker@lan2 ~]$ id
uid=502(seker) gid=503(zorro) groups=502(seker),503(zorro)
[seker@lan2 ~]$ su root
口令:
[root@lan2 seker]# ifconfig
bash: ifconfig: command not found
[root@lan2 seker]# pwd
/home/seker
[root@lan2 seker]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/seker/bin
[root@lan2 seker]# exit
exit
[seker@lan2 ~]$ id
uid=502(seker) gid=503(zorro) groups=502(seker),503(zorro)
[seker@lan2 ~]$ su - root
口令:
[root@lan2 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:F9:41:37
[root@lan2 ~]# pwd
/root
[root@lan2 ~]#
思考原因为什么呢?
3.
1).将RHEL5的光盘制作成iso文件,再挂载到/mnt下.将里面的所有文件复制到/var/ftp/pub/rhel5u3下一份.(注意,所选的光盘一定要和你当前系统的版本相符合)
2).两人一组,分别以root身份和普通用户身份登录到对方机器上,检测对方在做什么,并给其发送信息
3.vim 编辑器
自建一个模板文件,联系vim编辑器,按字符,词,行,块这个顺序练习
模式切换:输入模式 命令模式 命令行模式
字符操作
i 当前插入 I 行首插入
a 当前字符之后插入 A 行尾插入
o 下一行插入 O 上一行插入
x 向后删除一个字符 X 向前删除一个字符
u 撤销一步 U 撤销所有更改
行操作
^ 行首 $行尾 dd 删除一行 Ndd yy 复制一行 Nyy p 将复制行粘贴 P上粘
词操作
dw 删除一个词 yw 复制一个词
块操作
d$ 删至行尾 d^ 删至行首
y$ 复制至尾 y^ 复制至首
v 模式
进入v模式 移动光标选择区域
VIM命令行操作
:%s/old/new/g
:set nu/nonu
:e! 重新读入
/ 正查
? 反查
: !ls 调用系统命令
4.
1).
# useradd abc
# echo 123 | passwd --stdin abc
# umask 200
# touch /home/abc/root_file
# chmod +x !$
chmod +x /home/abc/root_file
# chown abc:abc !$
chown abc:abc /home/abc/root_file
# ll !$
ll /home/abc/root_file
-r-xrw-rwx 1 abc abc 0 06-24 16:31 /home/abc/root_file
#
问:此时abc用户能否删除root_file,先思考得出你的答案,再动手验证是否和你思考的结果吻合.
2).
# touch test.txt
# chmod 777 test.txt
# chmod -w test.txt
真的能够得到 r-xr-xr-x 的结果吗?
3).
1).建立三个普通用户seker,zorro,shrek.用root用户在/root目录中建立一个文件abc.txt
2).使seker用户既能读又能写abc.txt文件,但不能删除
使zorro用户只能读取,不能写也不能删这个文件
使shrek用户只能删除,不能读写这个文件.
以上三个条件同时成立
【课后练习】
1.
1).在/opt目录中分别建立五个文件,大小分别为10M 13M 15M 17M 20M.
2).并将文件mtime依次修改为1天前日期,3天前日期,5天前日期,7天前日期,9天前的日期.
3).搜索/opt目录中,大小超过18M的所有文件,并以长列表的方式显示出来.
4).搜索/opt目录中,大小在小于13M或大于16M的所有文件,并将其复制到/mnt下去.
5).搜索/opt目录中,大小在大于16M且小于17M的文件,并将其改名为new_file.
6).搜索/opt目录中名字以fil开头所有文件,并将其全部删除.
7).再按时间匹配进行搜索 -mtime +3 , -mtime -3 , -mtime 3 这几个参数去搜索.测试出+3 -3 3的各自含义是什么?
2.
某天你建了一个文件,又做了个硬链接到 /etc/ 下
# echo "slkdjf" >> file_1
# ln file_1 /etc/my_file
时隔多日,你忘记了以前的操作.不知道硬链接建到了什么地方..
只能看到文件的连接数是2
# ll file_1
-r--rw-rw- 2 root root 7 06-24 16:49 file_1
#
请找出那个忘记位置的硬链接文件.