码迷,mamicode.com
首页 > 其他好文 > 详细

文件通配符,用户与组管理

时间:2016-07-31 16:03:13      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:文件通配符   用户与组管理   

匹配模式:元字符

 

文件名通配符

*匹配任意长度的任意字符

[root@localhost ~]# ls /root/D*

/root/Desktop  /root/Documents  /root/Downloads

 

?匹配单个任意字符

[root@localhost ~]# ls /root/a?b

 /root/akb    /root/alb

 

[]匹配自带范围内的任意单个字符[1-9] [a-z] [a-z0-9]a-z0-9中单个字符  

[root@localhost ~]# ls /root/a[a-z]b

/root/akb  /root/alb

[root@localhost ~]# ls /root/a[1-9]b

/root/a1b  /root/a3b

pa[0-9][0-9]  

数字:200-290=2[1-9][1-9]

 

[[:upper:]]  :所有大写字母

[[:lower:]]  :所有小写字母

[[:alpha:]]  :所有字母

[[:digit:]]   :所有数字

[[:alnum:]]  :所有的字母和数字

[[space]]   :所有空白字符    touch /root/a\ b     文件a空格b

[[:punct:]]  :所有标点符号

 

\转义字符    

 

[^] :匹配范围外的任意单个字符

[^[:upper:]]  

[^0-9]  

 

查找以m,n,r,p开头,以.conf文件结尾的文件

ls [m-nr-p]*.conf

 

 

IO重定向及管理

  可用于输入的设备,文件

   键盘,文件系统常规文件,网卡

  可用于输出的设备,文件

    键盘,文件,网卡

 

 程序的数据流有三种

 输入的数据流:<------  标准输出(stdin) 0   键盘

 输出的数据流   ----->  标准输出(stdou1 显示器

 错误输出流     ----->  错误输出(stderr) 2  显示器

 

 fd 文件描述符

标准输入:0

标准输出:1

错误输出:2

 

io重定向

输出重定向 >  文件或者设备   ,重定向写数据时要非常注意 echo > /dev/sdb1

[root@localhost ~]# cat /etc/issue > /dev/tty1  重定向至终端

> 覆盖输出重定向

>> 追加重定向,IO流将输入到文件或设备后追加内容。

/dev/null  数据黑洞,将输出数据重定向至/dev/null ,设备/dev/null则会将它丢弃

 

cat /etc/issue >| /tmp/a.txt   强制覆盖输出

 

错误输出流重定向 2> ,2>>

 

合并正常输出流和错误输出流  &> ,&>>

1   ls +dafsa &> /root/err.log       

2   ls +safa > /root/err.log 2>&1    这种不能使用:2>>&1

3   ls + asdfa 2> err.log  1> err.log

 

 

 

输入重定向

cat  <  /etc/issue

 

 

 

tr命令  字符替换

localhost ~]# tr [a-z] [A-Z] < /etc/issue

CENTOS RELEASE 6.8 (FINAL)

KERNEL \R ON AN \M

WELCOME XIONG LINUX......

 

-d  删除字符  tr -d xiong < /etc/issue

 

 

<<  

[root@localhost ~]# cat << EOF

> xiong

> xiong

> EOF

xiong

xiong

 

[root@localhost ~]# cat > /tmp/cat.out << EOF

> xiong

> xiong

> EOF

[root@localhost ~]# cat /tmp/cat.out

xiong

xiong

[root@localhost ~]#

 

 

管道(|):将前一个命令的输出流当后一个命令的输入流

 

tee 将输出流数据保存,并将流副本交给下个管道命令

[root@localhost ~]# cat /etc/issue | tee /root/issue | tr ‘xiong‘ ‘jiangshuang‘

CentOS release 6.8 (Final)

Kernel \r an an \m

welcame jiang linuj......

[root@localhost ~]# cat /root/issue

CentOS release 6.8 (Final)

Kernel \r on an \m

welcome xiong linux......

 

 

权限管理

用户,组,权限管理

passwd命令对用户进行密码设置

  

用户登录系统时,需要对用户进行识别,这个过程就是认证的过程。

用户标识,密码 authertication 认证

 

autherrization  授权(chmod,chown)

 

监督权限使用,审计audition    3a

 

 

组:用户组,用户容器,将几个用户加入容器,并将文件权限授权给组,使用户

组内的用户能对授权文件进行操作。组也可以角色。

 

用户类别:有管理用户,普通用户(系统用户,登录用户)

 

用户标识: userid用户id   uid id 是个二进制数字:0-65535

管理员:0

普通用户:1-65535

   系统用户:1-499centos5,6   1-999centos7

   登录用户:500-6000centos5,6  1000-6000centos7

 

名称解析,

username<--->uid  根据名称解析库进行解析(/etc/passwd)

   

组类别1

     管理员组

     普通用户组(系统组,登录组)

     组标识:  groupid   ,gid

     管理员组:0

       系统组:1-499,centos5,61-999个,centos7

      普通用户组

         500-6000个,centos5,6   1000-6000centos7

   

 名称解析 :groupname<----->gid /etc/group

  组类别2

      用户的主组

      用户的附加组

 

  组类别3

       私有组:组名同用户,且只包含一个用户

       公共组:组内包含了多个用户:

    

  认证信息

  通过对比事先存储的,与登录时提供的信息是否一致

  password:

     /etc/shadow用户密码

     /etc/gshadow组的密码

[root@localhost ~]# cat -n /etc/passwd /etc/group /etc/shadow /etc/gshadow | grep xiong

    36xiong:x:501:501::/home/xiong:/bin/bash

    98xiong:x:501:

   134xiong:$6$zbywqADi$mzSgwpfNxbCjj10deJrcZ9BnA96C9nSWtk7CjjibSKYTmM/hMSZtIdnlP7V60ys8R0rPxs1FNrbaPfEfrc1mt1:17010:0:99999:7:::

   196xiong:!::

 

密码使用策略:

 1.使用随机密码

 2. 最短长度不要低于8

 3.大写字母,小写字母,数字,标点符号至少3

 4.定期更换密码

 

 

加密算法

  对称加密,加密和解密使用同一个密码

  非对称加密:加密和解密使用的一对密钥,公钥与私钥

  单向加密:只能加密,不能解密,提取数据的特征码

     定长输出,有雪崩效应

 

 算法:md5  

       sha

       sha224

       sha256

       sha384

       sha512  $6$

 

 在计算之时加上salt,添加随机数:

 mageedu12345678:加密字串

 mageedu12345678:生成加密子串

 

 

/etc/passwd 用户的信息库

/etc/passwd

 [root@localhost ~]# tail /etc/passwd | grep xiong

xiong:x:1001:1001:注释信息(useradd -c “”可以创建):/home/xiong:/bin/bash

xiong: 用户名

x:占位符

uid:用户的uid

gid:用户所属的主组的id

gecos:注释信息

directory:用户的家目录

shell:用户默认的shell

 

/etc/shadow

用户名:加密的密码:最近一次修改密码的时间:最短使用期限,最长使用期限,警告期段,有效期限:保留字段

用户名:

[root@localhost ~]# cat /etc/shadow |grep xiong

xiong:$6$iWlJ.Osu$6Ma.e092soQLmIPWzTsS8YSbYwQ9BUa4uAK9FPqiPmAFeYgNGxw7.HwrBorAsk12JCYBrW9FRX.pBG97k4lup0:17009:0:99999:7:::

$分隔

$6$ 6表示用sha512加密

$iWlJ.Osu$随机数

密码6Ma.e092soQLmIPWzTsS8YSbYwQ9BUa4uAK9FPqiPmAFeYgNGxw7.HwrBorAsk12JCYBrW9FRX.pBG97k4lup0

1700最近一次更改密码的天数,从1970年到今天

 

/etc/group

[root@localhost ~]# cat /etc/group | grep xiong

xiong:x:1001:

xiong:组名   x密码占位符  gidid   

user_list:该组的用户组成员,以次组为附加组的用户的用户列表

 

 

相关命令:useradduserdelusermodpasswdgroupaddgroupdelgroupmodgpasswd

 

linux 用户与组管理

 groupadd,如果不指定的话,默认为上一个组id1

-g --gid 指定用户组的组id

[root@localhost ~]# groupadd -g 222 mygroup1

[root@localhost ~]# tail -n 2 /etc/group

mygrp:x:1002:

mygroup1:x:222:

 

有些进程随开机启动的,这些进程就叫做后天进程。

任何对文件的访问,都不是人在访问,都是人用ls命令启动的进程去访问文件。

进程访问资源是代表某个用户去访问资源。

 

-r创建系统组 cat /etc/group

:安全上下文模型:进程以其发起者的身份运行

系统组:

  进程访问的文件权限,取决于发起者的权限

  为了让那些后台进程或服务类进程以非管理员的身份运行,通常需要为此创建多个普通用户,

 这个用户从来不用等了系统:仅仅是用来让其他进程以他身份来运行,从而获取普通权限的。

[root@localhost ~]# groupadd -r -g 306 marriadb

[root@localhost ~]# tail -2 /etc/group

testid:x:2000:

marriadb:x:306:

 

groupmod修改组属性

-n  修改组名

[root@localhost ~]# groupmod -n xiongdb(新名字) marriadb(旧名字)

-g   修改组id

[root@localhost ~]# groupmod -g 399 xiongdb

 

 

 

 

groupdel 删除组

[root@localhost ~]# groupdel testid

 

 

useradd  创建用户

useradd docker

-u 指定用户的uid

useradd -u 3000 docker

 

-g 指定基本组id ,此组必须实现存在

 openstack

useradd -g openstack xiong

 

-c添加注释信息

useradd -c test user05

 

-G 指明用户所属的附加组,多个组之间用分号分隔 ,组必须事先存在

openstack,doctor,user05

useradd -G openstack,doctor,user05 xiaoxiong

[root@localhost ~]# tail -4 /etc/group

doctor:x:1045:xiaoxiong

openstack:x:3000:xiaoxiong

user05:x:3003:xiaoxiong

xiaoxiong:x:3004:

 

-d 指定的路径为用户的家目录,通过复制/etc/skel此目录并重命令实现的:

指定的家目录路径如果事先存在,则不会为用户复制环境配置文件

[root@localhost ~]# useradd -d /tmp/user09 user09

[root@localhost ~]# ls /tmp/

user09

指定目录时,最好目录不存在

 

-s 指定用户的默认shell文件,可用的所有shell列表为/etc/shells文件

[root@localhost mytest]# useradd -s /bin/csh kestone

[root@localhost mytest]# tail -1 /etc/passwd

kestone:x:3008:3008::/home/kestone:/bin/csh

-r 创建系统用  centos7中创建的,1-999为系统用户

[root@localhost mytest]# useradd -r xiong01

[root@localhost mytest]# tail -1 /etc/passwd

xiong01:x:991:398::/home/xiong01:/bin/bash

 

-m 强制为用户指定目录,并复/etc/skel环境等配置文件

 

-M 不创建主目录

[root@localhost mytest]# tail -1 /etc/passwd

xiong03:x:3009:3009::/home/xiong03:/bin/bash

[root@localhost mytest]# ls /home/    未创建目录xiong03

doctor  kestone  mageedu  openstack  user02  user03  user05  xiaoxiong  xiong

 

-f 非活动期限,指用户到期后,登录系统,修改密码就行,值为-1

 

 

-D  显示用户创建时,用到的创建用户信息。

[root@localhost mytest]# useradd -D

GROUP=100     私有组

HOME=/home   创建家目录位置

INACTIVE=-1     非活动期限禁用

EXPIRE=         永不过期

SHELL=/bin/bash  默认shell

SKEL=/etc/skel    

CREATE_MAIL_SPOOL=yes  是否创建邮件队列,/var/spool/mail创建邮件地址

 

[root@localhost mytest]# useradd -D -s /bin/csh    修改的文件是 /etc/default/useradd

[root@localhost mytest]# useradd -D

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/csh       修改用户创建时shell,重启不会还原

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes

 

 

 

/etc/login.defs  创建用户时一些配置文件

 

usermod 修改用户属性

-u  修改用户为此处的新id

-g  修改用户所属的基本组

usermod -g openstack user09   修改用户所属的附加组,原来的附加组会被覆盖,如果想不被覆盖

则与-a配合使用

-a --append:与-G一起使用,用于为用户追加新的附加组。

-c修改注释信息

-d 修改用户的家目录,用户原有的文件不会被转移至新位置

必须与-m一起使用

-s 修改用户shell

-L   lock锁定用户的密码

 

 

userdel删除用户

userdel user01  但是不会删除用户目录

userdel -r user01 删除用户,同时删除用户目录

 

passwd修改用户米

passwd xiong 修改xiong的密码

-l-u 锁定和解锁

-e 过期期限 ,日期

-i  days 非活动期限

-n  days密码的最短使用期限

-x  密码的最长期限

-w 警告期限

--stdin 通过标准输出来设置用户名密码

[root@localhost ~]# echo "111111" | passwd --stdin user05

Changing password for user user05.

passwd: all authentication tokens updated successfully.

 

gpasswd 组添加密码

选项

gpasswd xiong

 

-a username 向组中添加用户

[root@localhost doctor]# gpasswd -a fdora netadmin

Adding user fdora to group netadmin

[root@localhost doctor]# tail -10 /etc/group

gentoo:x:4001:netadmin

fdora:x:4002:

netadmin:x:4003:fdora

[root@localhost doctor]#

 

 

-d username 重组中移除用户

 

netgrp user05()

[xiaoxiong@localhost ~]$ newgrp user05

[xiaoxiong@localhost ~]$ id

uid=3004(xiaoxiong) gid=3003(user05) groups=3003(user05),1045(doctor),3000(openstack),3004(xiaoxiong)

[xiaoxiong@localhost ~]$ touch a

[xiaoxiong@localhost ~]$ ll

total 0

-rw-r--r-- 1 xiaoxiong user05 0 Jul 28 17:30 a

[xiaoxiong@localhost ~]$ exit          退出组必须用

[xiaoxiong@localhost ~]$ id

uid=3004(xiaoxiong) gid=3004(xiaoxiong) groups=3004(xiaoxiong),1045(doctor),3000(openstack),3003(user05)

[xiaoxiong@localhost ~]$

 

newgrp xiong() 临时切换至组 ,如果用户组有密码,需要输入组密码

 

chage 命令 更改用户密码过期信息

 

id命令 显示用户真实有效的id

id  不加选项是显示自己的

id 加用户,显示用户的id信息

 

su切换用户

登录式切换,会通过重新读取目标的配置文件来重新初始化

 su - 用户名  su - xiong  或者 su -l username

 

非登录式切换,不会读取目标用户的配置文件进行初始化

su 用户名

管理员切换至他用户,不需要用户密码,但是切换用户切换需要输入密码

-c 仅以指定用户的身份运行此处指定的命令

[root@localhost ~]# su - netadmin -c ‘whoami‘

netadmin

 

chsh改变bash

 

chfn

 

pwck 检查用户密码是否有问题

gpwck 检查用户组的密码是否有异常的

 

 

权限管理

 进程安全上下文:

      进程对文件的访问权限应用模型

      进程的属组与文件的属组是否相同,如果相同,则应用属组权限,

      否则,则检查进程属组是否与文件的属组;如果是,则应用属组权限。

      否则,就只能运用其他权限进程的属组与文件的属组是否相同,如果相同,则执行,如果不同则检查属组权限,如果有权限,则执行,如果没有,检查其他

用户权限,有权限则执行。)

      左三位定义属组权限,中三位为属组权限,右三位为其他用户权限

 

r:readable 4读权限  w writeable  2写权限  x  excuteable  1执行权限

 

文件:r:可以获取文件数据       access time

      w  可修改文件的数据      touch  文件  stat 文件 modify time

      x   可将此文件运行的进程  change time  

文件一般没有执行文件,如果文件有执行权限,则有可能有问题。

     

目录  r 可用ls命令获取其下的所有文件列表,但是不获取详细信息

      w 可修改此目录下的文件列表

      x cd至此目录 ,可用ls -l 获取所有文件的详细属性信息。

 

 

 

权限组合机制:没有权限就用-代表

---   000     0     没有读写,执行权限

--x   001     1

-w-  010     2

-wx  011     3

r--   100     4

r-x   101     5

rw-  110     6

rwx  111     7         规律为,有相应权限为则为1,没有相应权限则为0

     二进制  八进制

 

chmod命令有三种

赋值表示:直接操作一类用户的所有权限位

属主u=  属组g=  其 他用户o=   所有a=

如果想同时给ug,o赋值则可以用‘,‘分开。如果两u,g,o相同则可写成ugo=

如果没有权限,则不写

如:

[root@localhost ~]chmod u=rwx,g=x,o=r  /root/f2

给文件f2属主加读写执行权限,给属组加执行权限,给其他用户执行权限

chmod u=rwx,g=wx,o=rx /root/2

 

授权表示法 :直接操作一类用户的一个权限位,属主,属组,其他用户权限相同时可连写 (ug, ugo,uo)

u+,u-   u+r  u+w u+x  u-r u -w o-x

g+,g-

o+g-

a+a-    这个时候可以省略a    chmod +w  f2等同于 chmod a+w  ,前面命令等同于同时加上w权限

如果

 [root@localhost ~]# ll f2

-rwxr-x--x 1 root root 5 Jul 28 08:59 f2

[root@localhost ~]# chmod ugo-x f2

[root@localhost ~]# ll f2

-rw-r----- 1 root root 5 Jul 28 08:59 f2

 

2.八进制表示法

x 1  w 2 x4

如:

chmod 740 f2   chmod 777 f2   chmod 111  f2

3.引用性修改,参考某个文件的权限,并将这个文件的权限赋值给文件,如

    chmod --reference=/var/log/messages f2  

 

选项

-r 递归修改目录文件内的权限,一般应用到授权表示法,不建议不加思索是使用赋值和8进制法修改

 

 

从属关系管理命令

chownchgrp

 

选项 -R: 递归修改

 

 

chown -R xiong:root f2  将文件修改为xiong属主,并且文件属于root

chown  -R --reference=/var/log/messges  f2

 

 

chgrp  组 文件

[root@localhost ~]# chgrp xiong shadow

[root@localhost ~]# ll

total 20

drwxr-xr-x. 2 xiong xiong 4096 Jul 29 17:40 addd

-rw-------. 1 root  root    56 Jul 29 12:02 dead.letter

-rw-r--r--. 1 xiong root    27 Jul 29 12:13 f2

-rw-r--r--. 1 root  root    21 Jul 29 12:33 mail.txt

----------. 1 root  xiong 1054 Jul 28 10:03 shadow

 

 

对目录有写权限,目录下文件没有写权限,则可以在目录里创建或删除文件,但是对

目录下的文件没有写权限

 

root创建文件是时,权限是为644  

而普通用户创建为664

umask:文件的权限反向掩码,遮罩码

文件:

        666-umask  

目录:  777-umask

注意:之所以文件用66区减,表示文件默认不能拥有执行权限,

如果减得的结果又执行,则其结果需要将其加1

umask023

  666-023=643=644  减得得结果又1,则将加一边644

  777-023=754

[root@localhost ~]# umask 027   设置遮罩码

[root@localhost ~]# umask

0027

[root@localhost ~]# touch umask

[root@localhost ~]# ll

-rw-r-----. 1 root  root     0 Jul 29 18:28 umask

[root@localhost ~]# mkdir umaska

[root@localhost ~]# ll

-rw-r-----. 1 root  root     0 Jul 29 18:28 umask

drwxr-x---. 2 root  root  4096 Jul 29 18:28 umaska

 

linux很多设置,只对当前有效,退出系统就失效了。

 

 

install复制文件同时,设置文件的属性的

install --mode=777 /etc/fstab /root

 

cp复制文件是不能修改器权限的

 

mktemp 创建临时文件


文件通配符,用户与组管理

标签:文件通配符   用户与组管理   

原文地址:http://maoxiong.blog.51cto.com/11893605/1832335

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!