用户与权限

更改目录和文件的访问权限

1.7 du

是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在 的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和 
-h : 以K,M,G为单位,提高信息的可读性。
-s : 统计总占用量,而不列出子目录和子文件的占用量。
ls -h是目录下文件名占用大小   du -h 是目录下所有文件的大小
-k : 以KB(1024bytes)为单位输出。
-m : 以MB为单位输出。
-a显示每个子文件的磁盘占用量。默认只统计子目录的磁盘占用量。

1.slmgr.vbs /upk

复制以上命令,并在MSDOS窗口中右击以粘贴此命令,按回车进行确定。
此时弹出窗口显未“已成功卸载了产品密钥”

添加权限的用户名    ALL=(ALL)       ALL

1.24.7 处理动作:

-print :输出至标准输出:默认的动作; 
-ls :类似于对查找到的文件执行“ls -l”命令,输出文件的详细信息
-delete :删除找到的文件
-fls :/PATH/TO/SOMEFILE:把查找到的所有文件的长格式信息保存至指定文件中; 
-ok COMMAND {} ; :对查找到的每个文件执行由COMMAND表示的命令;每次操作都由用户进行确认; 
-exec COMMAND {} ; :对查找到的每个文件执行由COMMAND表示的命令; 
例:find ./ -perm /002 -exec mv {} {}.txt ;
注意: find传递查找到的文件路径至后面的命令时,是先查找出所有符合条件的文件路径,并一次性传递后面的命令;但是有些命令不能接受过长的参数,此时执行命令会失败;另一种方式可规避此问题:find | xargs command
:
1、 查找/var目录下属主为root,且属组为mail的所有文件或目录;
find /var -user root -a -group mail -ls

2、 查找/usr目录下不属于root,bin或hadoop的所有文件或目录;用两种方法;

find /usr -not -user root -a -not -user bin -a -not -user hadoop
find /usr -not ( -user root -o -user bin -o -user hadoop ) -ls

 

3、 查找/etc目录下最近一周内其内容修改过,且属主不是root也不是hadoop用户的文件或目录;
find /etc -mtime -7 -a -not -user root -a -not -user hadoop
find /etc -mtime -7 -a -not (-user root -o -user hadoop) -ls

4、查找当前系统上没有属主或属组,且最近一周内曾今被访问过的文件或目录; 
find ./ -nouser -o -nogroup -ls 如果有文件属于可查找项,但是加ls选项最后会无法输出显示 加了-o(或条件)和ls后只会对后一半生效。

需要→ find ./ ( -nouser -o -nogroup) -atime -7 -ls

 

5、 查找/etc目录下大于1M且类型为普通文件的所有文件;
find /etc -size +1M -ls
find /etc -size +1M -type f -exec ls -lh {} ;

6、 查找/etc目录下所有用户都没有写权限的文件;

find /etc -not -perm /222 -type f -ls 至少有一个用户 有

7、 查找/etc目录至少有一类用户没有执行权限的文件;
find /etc -not -perm -type f -111

8、 查找/etc/init.d目录下,所有用户都有执行权限,且其他用户有写权限的所有文件;

find /etc -perm -111 -a -perm -002 -ls
find /etc -perm -113 -ls -type f

 

4.输入以下命令:slmgr /ato此时将弹出窗口提示:“成功的激活了产品”。

最后就可以再次查看当前Win10专业版系统的激活状态啦。

添加用户到其他组

1.36 groups

groups username 显示linux用户所属的组

2.输入以下命令:slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX

弹出窗口提示:“成功的安装了产品密钥”。

切换超级用户

1.10.3 源码包与RPM包的区别

安装在指定位置当中,一般是/usr/local/软件名/。
RPM包安装的服务可以使用系统服务管理命令(service)来管理,例如RPM包安装apache的启动方法是:
/etc/rc.d/init.d/httpd start: 绝对路径启动服务。 
service httpd start
源代码保存位置:/usr/local/src/
软件安装位置:/usr/local/
如何确定安装过程报错:安装过程停止;并出现error、warning或no的提示。
源码包安装过程:
下载源码包;解压缩下载的源码包;进入解压缩目录。

CRT中sftp里面要设置远程的路径和本地的路径: 
cd 1 进入远程连接到的Linux的1目录
lcd text 本地的c盘text目录
get abc.c 从远程目录得到文件abc.c放入本地目录text
put a11.txt 从Windows上将文件a11.txt传入linux

源码包配置:
./configure软件配置与检查

  1. 定义需要的功能选择。
  2. 检测系统环境是否符合安装需求。
    3. 把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑。
    ./configure --prefix=/usr/local/apache2安装路径
    详情参考INSTALL
    源码包的卸载:
    不需要卸载命令,直接删除安装目录即可,不会遗留任何垃圾文件。
    脚本安装包:
    脚本安装包并不是独立的软件包类型,常见安装的是源码包。
    是人们把安装过程写成了自动安装的脚本,只要执行脚本,定义简单的参数,就可以完成安装。
    非常类似于Windows下软件的安装方式。

 

3.输入以下命令:slmgr /skms zh.us.to

弹出窗口提示:“密钥管理服务计算机名成功的设置为zh.us.to”。

chown 用户名:用户组名 /home/xxxx     //仅更改/home/xxxx当前目录的所有者和所属用户组
chown -R 用户名:用户组名 /home/xxxx  //将更改整个/home/xxxx当前目录及其下的子目录和文件的所有者和所属用户组

1.21.4 zip

zip默认保存源文件,可以压缩目录
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
-r :递归处理,将指定目录下的所有文件和子目录一并处理;

之前为了跑XX-NET傻乎乎的把家庭版windows升级到专业版,然后激活不了,今天发现一种激活方法。
首先,我们先查看一下Win10专业版系统的激活状态:
点击桌面左下角的“Windows”按钮,从打开的扩展面板中依次点击“设置”-“更新和安全”,并切换到“激活”选项卡,在此就可以查看到当前系统的激活状态。确认是Win10专业版当前未激活,如果是家庭版则以下命令中的秘钥不适用,请自行百度。
接下来在桌面左下角的“cortana”搜索框中输入“CMD”,待出现“命令提示符”工具时,右击选择“以管理员身份”运行。
此时将“以管理员身份”打开“MSDOS”窗口,在此界面中,依次将以下命令粘贴:

usermod -G 用户组 用户名

1.39 ln

ln:链接命令
硬链接:复制并同步 ln /etc/passwd /tmp/password
软链接:类似windows下的快捷方式 ln -s /etc/passwd /tmp password
软链接和硬链接的区别:
1.创建命令不同: ln -s /root/ruan.txt /root/桌面/ ln /root/ying.txt /root/桌面/
2.软链接创建时必须使用绝对路径(链接和源文件在同一目录下,可以相对路径)硬链接创建时可以绝对路径也可相对路径
3.软链接的源文件不可以剪切,重命名,删除 硬链接的源文件可以剪切,重命名,删除
4.软链接的链接文件权限永远是777,即使将链接文件的权限进行了修改,也不会发生变化,变得是源文件的权限 硬链接的链接文件权限永远和源文件相同
5.软链接的链接文件的inode号和源文件不同 硬链接的链接文件的inode号和源文件相同
6.软链接可以对目录操作 硬链接不支持对目录操作,是针对于上层来说,底层是可以针对于目录做硬链接的,通过代码就可以实现
7.软链接可以跨文件系统 硬链接不可以跨文件系统,因为硬链接是存放在源文件的同一个block上面的

passwd 用户名

1.34 passwd

-S:查询用户密码的密码状态,仅root用户可用。
-l:暂时锁定用户。仅root用户可用。
-u:解锁用户。仅root用户可用。
--stdin:可以通过管道符输出的数据作为用户的密码。 # echo "123" | passwd --stdin user

chmod 660 /etc/sudoers

本文档部分内容参考于网友个人博客以及各大搜索网站 禁止分享

给用户增加sudo权限

1.22.1 *.tar.gz

归档并调用gzip压缩 tar -zcf 新文件名.tar.gz /etc/passwd /var/log/messagages
调用gzip解压缩并展开归档 tar -zxvf filename.tar.gz

 

1.28 userdel

删除用户userdel [-r] 用户名
-r:删除用户的同时删除用户家目录

在之后追加以下代码,保存退出

1.18.5 NTFS u盘支持

下载NTFS-3G插件 
解压 tar -zxvf filename
安装 ./configure && make && make install
fdisk -l查看linux的U盘分区:sdc1
#mount -t ntfs-3g /dev/sdc1 /mnt/usb/ #mkfs -t ext4 /dev/sdb1/ 格式化分区,扩展分区不可格式
#mkdir /disk1 建立挂载点
#mount /dev/sdb1 /disk1 挂载

root    ALL=(ALL)       ALL

2.1.2 影子文件:/etc/shadow

第1字段:用户名
第2字符:加密密码 加密算法升级为SHA512散列加密算法
如果密码位是“ !”或“ * ”代表没有密码,不能登录。
第3字段:密码最后一次修改日期:使用1970年1月1号作为标准时间,每过一天时间戳加1。
第4字段:两次密码的修改间隔时间(和第3字段相比)间隔多少时间后才可以修改密码。
第5字段:密码有效期(和第3字段相比)
第6字段:密码修改到期前的警告天数(和第5字段相比)
第7字段:密码过期后的宽限天数(和第5字段相比)
0:代表密码过期后立即失效。
-1:则代表密码永远不会失效。
第8字段:账号失效时间,要用时间戳表示
第9字段:保留
把时间戳换算为日期:
date -d "1970-01-01 17740 days" 
把日期换算为时间戳:
echo $(($(date --date="2018/07/28" +%s)/86400+1))

userdel [参数] 用户名
  参数:
  -f:强制删除用户,即使用户当前已登录
  -r:删除用户的同时,删除用户目录

1.33 chage

修改用户密码状态chage 
#chage [选项] 用户名 
-l:列出用户的详细密码状态
-d 日期:修改密码最后一次更改日期(shadow3字段)
-m 天数:两次密码修改间隔(4字段)
-M 天数:密码有效期(5字段)
-W 天数:密码过期前警告天数(7字段)
-I 天数:密码过后宽限天数(7字段)
-E 日期:账号失效时间(8字段)
#chage -d 0 username这个命令其实是把密码修改日期归0了(shadow第3字段),这样用户只要一登录就要修改密码。第三字段是指密码最后一次修改时间的日期。1970年1月1号到现在修改密码的时间戳。如果第3字段改为0,系统会认为用户没有修改过操作密码,那么当此用户一旦登录系统就会提示要修改密码,才可正常使用。

su
输入root用户密码

1.15 chown

改变某个文件或目录的所有者和所属的组
Grammar:chown USER:GROUP 对象
chown USER 对象  chown :group 对象

追加用户组

2.6 linux下查看帮助命令

whatis :用于查询一个命令执行什么功能,并将查询结果打印到终端上
[root@localhost ~]# whatis ls
man :Linux提供了丰富的帮助手册,当你需要查看某个命令的参数时不必到处上网查找,只要man一下即可   man command    

**追加新用户**

2.2.1 SUID

SetUID的功能:

1. 只有可以执行的二进制程序才能设定SUID权限。 
2. 命令执行者要对该程序拥有X(执行)权限
3. 命令执行者在执行该程序时获得该程序文件属主的身份
4. SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效。

SUID :默认情况下:用户发起的进程,进程的属主是其发起者;因此,其以发起者的身份运行;
SUID 的功用:用户运行某程序时,如果此程序拥有SUID的权限,那么程序运行为进程时,进程的属主不是发起者,而程序文件自己的属主;
管理文件的SUID权限: 
chmod u+|-s FILe 
展示位置:属主的执行权限位。 
#chomod 4644 filename
取消suid权限:#chmod 644 filename
大写S为报错,检查是否有x权限

 

添加sudo权限

1.24.3 根据文件的类型查找:

-type TYPE :按name查找 
f:普通文件  d:目录   l:符号链接文件   b:块设备文件   c:字符设备文件
p:管道文件 s:套接字文件   【 ./可执行文件 】
组合测试:   与:-a,默认组合逻辑;  或:-o;  非:-not,! 
!A -a !B =!(A -o B)      !A -o !B =!(A -a B)    例:查找tmp目录下不包含“fstab”的字符文件   find /tmp -not -iname "*fstab*"  

useradd -d 指定用户目录 -s 指定用户使用shell -g 指定用户组 -p 指定用户密码 用户名

1.26 vim

:.,$y 复制当前行到末尾行
:! 调用系统命令,可临时执行
使vim设置永久生效:vim /etc/vimrc 把设置写到这个文件的最后,对所有账户生效
set nu 显示行号   set nonu 取消行号
set ic 不区分大小写 set noic 取消不区分大小写
set ts=4 设置tab键长度
set sw=4 设置自动缩进的tab键长度 
vim /root/.vimrc 也可以把设置写到此文件,只对root生效 
vim字符替换:

:%s/this/that 每一行的第一个this被替换成that 
:%s/this/that/g 将文本中所有的this替换成that %从每一行的开头到结尾 s表示替换 
:1,5 s/old/new/g #替换第一行到第5行中所有匹配的内容

字符操作:u撤销上一步 
i当前插入,I行首插入。
a当前字符插入(光标后一位插入),A行尾插入。 
o表示:本行回车到下一行插入,O上一行插入。
x删除光标所在字符,X向前删除一个字符。
dd删除光标所在的行,dG删除光标所在开始行到文件尾的所有字符。 
J合并两行。 
行操作:home 键或^键行首,$或end行尾
dd删除一行Ndd(删除本行与下一行)。
yy复制一行,Nyy复制n行,p将复制行粘贴,p向光标下一行粘。(N表示数字)
词操作:dw删除一个词,y+$复制至行尾。y+^复制至行首。yw复制一个词。:.,$y 复制当前行到末尾

v模式:编程的时候需要进行多行注释: (删除是要将光标移到这个词的行首,如果光标不在行首则删除光标之后的字母。) 块操作:D或d+$删除至行尾 d+^删除至行首
1、注释:ctrl+v进入列编辑模式 
2、向下或向上移动光标 (ctrl L 向下全部选中)
3、把需要注释的行开头的开头标记起来
4、然后按大写的I
5、再插入注释符,比如“#”
6、再按Esc,就会全部注释了
删除多行注释:按ctrl+v进入列编辑模式;向下或向上移动光标;选中注释部 分然后按d,就会删除注释符号。

vim编辑器: :wq 可以保存外 :w +路径+文件名直接保存在某个位置和重命名:w 路径/文件名
ZZ 保存退出  :x 保存退出  :!命令:!ifconfig 
vi的行定位功能:
ctrl+f 向前卷动一个屏幕
ctrl+b 向后卷动一个屏幕
G 到文件最后一行行首
:$ 到文件最后一行行尾
mG 到指定行,m为目标行数 或者mgg 
set nu 显示行号 
/内容 查找指定内容 
n 查找下一个
N 回到前一个
? 寻找上一个

/^字符串 查找以字符串开始的行
/字符串$ 查找以字符串结尾的行 
/a.b 查找字符串a任意字符b vim替换 
r 替换当前光标字符 
:r 文件名 在光标当前位置载入另一个文件

 

chmod 777 /home/xxxx      //仅把/home/xxxx当前目录的权限设置为rwxrwxrwx
chmod -R 777 /home/xxxx   //将整个/home/xxxx当前目录及其下的子目录和文件权限都设置为rwxrwxrwx

1.22 tar

-c: 建立压缩档案 
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的

tar cf file.tar files 将一个或多个文件、目录打包到tar包。
tar rf file.tar file 将文件file添加到tar包中。
tar uf file.tar file 将文件file更新tar包中相应的文件。
tar tf file.tar 查看tar内容。
tar xf file.tar 解压tar包。 
-z:有gzip属性,即需要用 gzip 压缩
-j:有bz2属性,即需要用 bzip2 压缩 
-v:显示处理过程 
-C:指定解压输出目录 tar zxvf test.tar.gz -C test
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名
-Z:有compress属性的
-O:将文件解开到标准输出 
格式:tar Zcf file.tar.Z files 将一个或多个文件、目录压缩到file.tar.Z中。需要安装了ncompress软件包才行。
解压.tar.Z文件。格式:tar Zxf file.tar.Z  
归档并压缩:使用时间格式打包数据:
tar zcf etc-$(date +%F).tar.gz /etc   tar zcf etc-`date +%F`.tar.gz /etc

找到下面root的代码处

1.24.6 根据权限来查找:

-perm [/|-]mode     例:find ./ -perm 644  
mode:精确权限匹配;
/mode :任何一类用户(u,g,o)的权限中的任何一位(r,w,x)符合条件即满足 9位权限之间存在“或”关系;
-mode :每一类用户(u,g,o)的权限中的每一位(r,w,x)同时符合条件即满足 9位权限之间存在"与"关系; 
例: 440属于/666有读的权限 find./ -perm /666 符合这一查找

groupadd 用户组名

Description:"【中文中括号】"表示单一的解释,不在所属的问题之中,勿需与所在命令比较。 
Red coloured words 表示重点,linux不同文件类型以不同颜色区分。本文档中出现的color与linux系统相对应。 
Blue coloured words 为给出的例子。 :表示换行。 
linux the document出现的黑色背景矩形方框为区别给出的例子
color= #FF1493 区分RED标记.     背景color=#778899叙述或解释。
Typeface color=#FF6347区分标题

vim /etc/sudoers

1.32 su

su: [选项] 用户名
-:选项只使用"-"代表连带用户的环境变量一起切换。

可使用env命令查看

-c:仅执行一次命令,而不切换用户身份
#su - root -c "useradd user3"不切换成root,但是执行useradd命令添加user1用户。

 

默认的sudoers文件是没有写入权限的,需要增加权限

2.1.5 用户的家目录

  • 普通用户:/home/用户名/,所有者和所属者都是此用户,权限是700
  • 超级用户:/root/,所有者和所属者都是root用户,权限是550。
  • 用户的邮箱:/var/spool/mail/用户名/
  • 用户模板目录:/etc/skel:创建用户时,用户的家目录会自动创建一些隐藏文件,这些文件是从/etc/skel/ cp过去的。想要每个新添加用户时家目录自动出现共享文件可在此目录添加。

符号类型改变权限 

3.1 shell更改

shell 程序执行有三种方式 filename:foo.sh  #. foo.sh   #bash foo.sh  #chmod +x foo.sh→#./foo.sh linux读取shell配置文件的执行顺序
Bash Shell的配置文件启动系统执行顺序
#/etc/bashrc 文件   #/etc/profile 文件  #/etc/profile.d 目录  #~/.bashrc 文件#~/.bash_profile 文件
切换不同的类型和版本的Shell   查看shells # cat /etc/shells 
通过配置文件修改用户Shell
# /etc/passwd    # /etc/shells
通过命令自定义切换

  • chsh 自定义shell (请勿更改) 
    例:cp /bin/bash /bin/pan copy     vim /etc/shells 添加 /bin/pan add 
    chsh 切换shell /bin/shell change

 

修改sudoers文件 

1.5 awk

  1. awk '{print $1}' 文件名  $1第一列,$2第二列,$NF最后一列.$(NF-1)倒数第二列)。 现在是以文件的空格为分隔符这样打印
  2. awk -F ":" '{print $1}' /etc/passwd  -F指定分隔符,并打印文件第一列
    多列打印 [root@pan ~]# awk -F ":" '{print $2 $3}' /etc/passwd 这样打印$2 $3之间是没有分隔符 要加分隔符就是 awk -F ":" '{print $2"分隔符符号"$3}' /etc/passwd $0表示整个文件

删除用户

1.40 SElinux

安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。SELinux 主要作用就是最大限度地减小系统中服务进程可访问的资源(最小权限原则)
DAC:在没有使用 SELinux 的操作系统中,决定一个资源是否能被访问的因素是:某个资源是否拥有对应用户的权限(读、写、执行)。 只要访问这个资源的进程符合以上的条件就可以被访问。 而最致命问题是,root 用户不受任何管制,系统上任何资源都可以无限制地访问。这种权限管理机制的主体是用户,也称为自主访问控制(DAC)。
MAC:在使用了 SELinux 的操作系统中,决定一个资源是否能被访问的因素除了上述因素之外,还需要判断每一类进程是否拥有对某一类资源的访问权限。 这样一来,即使进程是以 root 身份运行的,也需要判断这个进程的类型以及允许访问的资源类型才能决定是否允许访问某个资源。进程的活动空间也可以被压缩到最小。 即使是以 root 身份运行的服务进程,一般也只能访问到它所需要的资源。即使程序出了漏洞,影响范围也只有在其允许访问的资源范围内。安全性大大增加。 这种权限管理机制的主体是进程,也称为强制访问控制(MAC)。
getenforce 命令是单词get(获取)和enforce(执行)连写,可查看selinux状态
setenforce 命令则是单词set(设置)和enforce(执行)连写,用于设置selinux防火墙状态,如: setenforce 0用于关闭selinux防火墙,但重启后失效。图片 1
SELinux status:selinux防火墙的状态,enabled表示启用selinux防火墙 
关闭SElinux:
临时关闭 :[root@localhost ~]# setenforce 0 用于关闭selinux防火墙,但重启后失效 
永久关闭:修改selinux的配置文件:vim /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled,保存后退出,此时获取当前selinux防火墙的安全策略仍为Enforcing,配置文件并未生效。重启后验证。
SELinux 有三种工作模式,分别是: 1. enforcing:强制模式。违反 SELinux 规则的行为将被阻止并记录到日志中。

  1. permissive:宽容模式。违反 SELinux 规则的行为只会记录到日志中。一般为调试用。
  2. disabled:关闭 SELinux

修改用户密码

1.4 sort

sort将文件/文本的每一行作为一个单位,相互比较,比较原则是从首字符向后,不加参数时依次按ASCII码值进行比较,最后将他们按升序输出
-n :依照数值的从小到大排序;
-r :以相反的顺序来排序; 
-u :忽略相同行使用-u选项或者uniq 文件名
-t <分隔符>:指定排序时所用的栏位分隔字符;
-k 是指定需要排序的栏位(字母按ASCII排序,数字按从小到大。先数字后字母)
[root@mail text]# sort -nrk 3 -t: sort.txt  将CC列数字从大到小顺序排列:
eee:40:5.4
eee:60:5.1
ddd:20:4.2
ccc:50:3.3
bbb:10:2.5
aaa:30:1.6
AAA:BB:CC 列图片 2

chmod {[u][g][o][a]}{[+][-][=]}{[r][w][x]} /home/xxxx
chmod u+rwx /home/xxxx

1.21 Compression 压缩 command

更改目录和文件的所有权限

1.13 tail

主要用来从指定点开始将文件写到标准输出。很多人喜欢使用tail -f 来监控日志文件。
-f该参数用于监视文件的增长 tail -f filename 监视filename文件的尾部内容(默认10行,相当于增加参数 -n 10),刷新显示在屏幕上。退出,按下CTRL+C。
-n从指定行位置读取指定文件。tail -n 20 filename 显示filename最后20行。
-c显示文件最后n个字节 tail -c 20 a.txt

本文由澳门新葡亰平台官网发布于操作系统,转载请注明出处:用户与权限

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。