linux帮助|编辑器|基本权限----宋轶聪

来源:互联网 发布:js e.target 获取属性 编辑:程序博客网 时间:2024/06/03 17:47

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

#

请找出那个忘记位置的硬链接文件.

原创粉丝点击