您的位置:首页 > 运维架构 > Linux

Linux技术研究-基础篇(linux常用指令和权限管理)

2011-05-21 11:43 363 查看
Linux技术研究-基础篇(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 调用系统命令

用户管理 (增删改切)

用户都存储哪些信息?

用户名 密码 用户识别码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 -

加 - 与不加 - 的区别

[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 对应的系统命令 cat

w 对应的系统命令 vi echo >

x 执行 例如 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]#

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: