1. linux系统-文件系统&用户组管理-问题解答
1)ls
ls -l /home/ #显示home目录下文件或文件夹的包括访问权限、所属用户、所属主组、文件大小等信息, ls -l 也是别名ll的命令与选项部分。
ls -a /root #显示root目录下包括隐藏文件在内的所有文件
ls -d /etc/* #显示etc目录下所有子目录(不包括文件)
ls -S /root #按文件从大到小排列显示root目录下各文件
ls -Sr /root #按文件从小到大排列显示root目录下各文件
ls -U /root #按文件创建时间从新到旧排列显示root目录下各文件
ls -X /root #按文件后缀排序显示root目录下各文件
ls -R /root #递归显示root目录下所有文件
ls -t /root #按修改数据内容的时间(mtime)从新到旧排列显示root目录下各文件
2)touch
touch /data/file1 #在data目录下创建file1文件,如果目录下已经有同名文件,则不会覆盖同名文件
touch -t 201910200830.50 /etc/hosts #修改/etc/hosts文件的atime以及mtime的时间戳为2019年10月20日8点30分50秒
touch -c /data/f2 #刷新data目录下f2文件的atime、mtime、ctime,如果f2文件不存在,则不会创建f2
3)cp
cp etc/hosts /home/ #复制/etc/hosts文件到 /home目录下,如果home目录下没有hosts文件,则自动创建同名文件;如果有,则会直接覆盖。
cp -i etc/hosts /home/ #复制/etc/hosts文件到 /home目录下,如果home目录下没有hosts文件,则自动创建同名文件;如果有,则会询问用户是否覆盖。
cp -r /etc/ntp /root #复制/etc/ntp目录下所有子目录以及文件到root目录下
cp -a /home/* /data/ #复制/home/目录下所有子目录以及文件到data目录下,所有文件的类型、软链接、文件所属关系、时间戳等信息都一并复制(但是home目录下的隐藏文件不会被复制到data目录下)
cp -av /home/* /data/ #在实现cp -a /home/* /data/ 复制的基础上,在终端上显示复制过程
cp -u /etc/* /data/ #将etc目录下的文件复制到data目录下,如果etc目录的文件比data目录下的同名文件新,则覆盖data目录下的同名文件,如果etc目录下的文件比data目录里的与之同名文件旧,则不覆盖。
cp --backup=numbered etc/hosts /home/hosts #将etc目录下hosts文件复制到home目录下的hosts,在复制之前,会先对home目录的hosts文件进行备份,避免被覆盖后,原文件内容丢失。
4)mv
mv /etc/hosts /data/ #将etc目录下hosts文件转移到data目录下,如果data目录有同名文件,则直接覆盖
mv -i /etc/hosts /data/ #将etc目录下hosts文件转移到data目录下,如果data目录有同名文件,则询问是否覆盖
mv f1 f2 #将当前目录下的f1文件修改名字为f2
mv -t /data/ /etc/hosts #将etc目录下hosts文件转移到data目录下,如果data目录有同名文件,则直接覆盖 。功能实现上与mv /etc/hosts /data/ 相同,但是移出路径参数与移入路径参数的位置发生了互换
mv downloads/ D #将当前目录下的downloads目录的名字改成D
5)rm
rm /data/f1 #删除data目录下的f1文件
rm -r /data/* #递归删除data目录下的所有文件
rm -rf /data/* #强制递归删除data目录下的所有文件
6)file
file /etc/hosts #查看etc目录下hosts文件的文件类型,如文本文件、压缩文件、可执行程序等
7)stat
stat /data/f1 #查看/data/f1文件的三个时间,内容数据修改时间mtime,读取时间atime,元数据修改时间ctime
8)pwd
#在当前目录下输入pwd回车,查看当前所在目录路径
pwd -P #显示当前目录或文件夹的真实路径
9)cd
cd /data #进入data目录
cd ~root #进入root的家目录
cd - #回到刚才离开的目录
10)mkdir
mkdir /data/dir #在data目录下创建dir目录
mkdir -p /data/dir1/dir2/dir3/dir4 #在data目录下创建子目录dir1/dir2/dir3/dir4,若dir1、dir2、dir3都不存在,则递归创建
11)rmdir
rmdir /data/dir #删除data目录下的dir目录,如果dir里面有文件,则dir不能被删除
rmdir -p /data/dir1/dir2/dir3/dir4 #若dir1、dir2、dir3、dir4都是空目录,则递归删除data目录下的dir1、dir2、dir3、dir4目录
12)ln
ln /data/f1 /data/f2 #在data目录下创建文件f1的硬链接f2
ln -s f1 f1.link #在当前目录下创建文件f1的软链接f1.link
#当软链接路径与原文件路径不同时,如软链接位置是:/root/f1.link ,而原文件路径是:/data/f1 。 则在创建软链接时需要相对于软链接的路径,对原文件路径补完相对路径,具体如下:
ln -s ../data/f1 /root/f1.link
答:
1)创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b
mkdir /tmp/a{1,2}
touch /tmp/a1/{a,b}
2)在/tmp目录下创建目录:x_y, x_z, q_y, q_z
mkdir /tmp/{x,q}_{y,z}
答:文件的元数据信息包括:
文件类型: 指文件所属的类型,包括目录、文本文件、压缩文件、可执行程序等。系统实际上查看文件的头部信息,magic number。
节点编号: 每个文件、文件夹在同一个磁盘分区内,都有一个唯一的节点编号inode,用于识别磁盘分区内的文件。节点编号的数量在一个磁盘分区内是有限的,如果节点编号耗尽,无论磁盘空间是否真的占满,都会显示磁盘空间已满。
硬链接数: 是指指向该文件节点编号inode的文件名称数量。
所属用户UID: 创建该文件的用户的uid
所属主组GID: 创建该文件的用户的主组gid
文件大小: 表示该文件的磁盘空间占用大小
mtime时间戳: 指文件的内容数据发生修改时的时间点
atime时间戳: 指文件被访问时的时间点
ctime时间戳: 指文件的元数据发生变化时的时间点
访问权限: 指不同用户对文件的访问、修改、执行等操作的权限
指向磁盘数据块的直接指针: 直接指向磁盘数据块的指针,一个文件最多有12个直接指针,每个直接指针指向一个4k大小的数据块
指向磁盘数据块的间接指针: 间接指向磁盘数据块的指针,一个间接指针会先指向一个4k大小数据块作为次阶指针表,该数据块又分成1024个4字节大小的区间,一个区间存储一个次阶的指针,次阶指针指向一个4k的磁盘数据块存储真正的文件数据,若依然不能满足空间要求,则可继续嵌套次阶指针表,直到满足文件存储要求为止。
查看元数据信息方式:
1)ls -l /data #可查看data目录下非隐藏文件的访问权限、所属用户UID、所属用户主组GID、mtime时间戳、文件大小、硬链接数。
2)stat /root/bin #可查看root目录下bin目录的atime时间戳、mtime时间戳、ctime时间戳
3)ls -lc /root/ #查看root目录下非隐藏文件的ctime时间戳
4)ls -lu /root/ #查看root目录下非隐藏文件的atime时间戳
5)ls -i /root #查看root目录下所有非隐藏文件的节点编号
6)file /root/.bashrc #查看root目录下.bashrc文件的文件类型
修改文件的时间戳信息:
touch -t 201910200830.50 /etc/hosts #将etc目录下hosts文件的atime和mtime时间戳修改成2019年10月2日8时30分50秒
touch -a /etc/hosts #更新etc目录下hosts文件的atime和ctime为当前时间
touch -m /etc/hosts #更新etc目录下hosts文件的mtime和ctime为当前时间
答: touch /tmp/tfile-`date +"%F-%H-%M-%S"`
答:
mkdir /tmp/mytest1 #先创建mytest1目录
cp -a /etc/p*[^0-9] /tmp/mytest1/
或:
cp -a /etc/p*[^[:digit:]] /tmp/mytest1/
答:
useradd -u 5001 -md /tmp/tom -s /bin/zsh -G jack tom
1)useradd
useradd jack #创建用户jack,用户策略采用系统默认配置
useradd -u 1008 jack #创建用户jack,指定用户的UID为1008
useradd -d /data/jack jack #创建用户jack,指定用户家目录路径为/data/jack
useradd -g 1111 jack #创建用户jack,指定用户主组是GID=1111的组,但GID=1111的组需要事先存在,否则无法创建
useradd -G tom jack #创建用户jack,指定用户jack加入附加组tom,但tom组需要事先存在,否则无法创建
useradd -s /bin/zsh jack #创建用户jack,制定用户jack的shell类型是zsh
useradd -r jack #创建系统用户jack,系统用户默认不创建家目录
useradd -r -md /data/jack jack #配合-d选项,创建系统用户jack,指定该系统用户创建家目录/data/jack,并在家目录中载入默认配置文件
useradd -N jack #创建用户jack,不创建jack同名主组,将jack主组默认为users
useradd -M jack #创建用户jack,强制用户jack不创建家目录
2)usermod
usermod -G wang jack #将jack用户的附加组更改为wang,原有附加组删除
usermod -aG wang jack #在不退出原有附加组情况下,jack用户增加附加组wang
usermod -l jacky jack #修改用户名称为jacky
usermod -e 20181212 jack #将用户jack的账号过期日期修改为2018年12月12日
usermod -s /bin/csh jack #修改用户jack的shell类型为csh,与命令: chsh -s /bin/csh jack 相等
usermod -c 'abcdefg' jack #编辑用户jack的注释为abcdefg
3)userdel
userdel jack #删除用户jack
userdel -r jack #删除用户jack,包括用户的家目录、邮箱
4)groupadd
groupadd -g 1010 leo #创建组leo,指定GID为1010
groupadd -r leo #创建系统组leo
5)groupmod
groupmod -n lee leo #修改组leo名字为lee
groupmod -g 1111 leo #修改组leo的GID为1111
6)groupdel
groupdel wang #删除wang组,但是wang组必须不是任何用户的主组,否则不可以删除
7)su
su jack #当前用户非登录切换到jack账号,不读取jack账号配置文件
su - jack #当前用户登录切换到jack账号,读取jack账号配置文件
8)groupmems
groupmems -l -g root #查看所有属于root组的用户
9)id
id #查看当前用户的UID名称 、 主组名称GID 、 附属组名称GID
id root #查看root用户的UID名称、 主组名称GID 、附属组名称GID
id -u root #查看root用户的UID名称
id -g root #查看root用户的主组名称GID
id -G root #查看root用户的主组名称GID 、 附属组名称GID
id -nG root #只查看root用户的主组名称 、 附属组名称
10)chfn
chfn jack #编辑修改用户jack的注释 ,与命令:usermod -c 'abcdefg' jack 类似
11)chsh
chsh -s /bin/csh jack #修改用户jack的shell类型为csh
12)chage
chage jack # 交互式修改用户jack的密码策略,包括修改:密码创建时间、最小密码修改期、密码有效期、过期通知、过期宽限期、账户有效时间
chage -l jack #查看用户jack的密码策略
chage -d 0 jack #让用户jack密码期限立即过期,重新登录需要更换密码
13)passwd
passwd #修改当前用户的账号密码
passwd jack #修改jack账号密码 (仅限root账号)
passwd -e jack #强制jack用户下次登录修改密码 (仅限root账号)
echo hello | passwd --stdin jack #利用管道标准输入,快速将jack用户密码修改成hello,无需输入两次新密码,不检验密码的复杂度
14)newgrp
newgrp root #将当前用户的主组切换成root,原主组切换成附属组,如果当前用户的附属组没有root组,切换时需要输入root组密码;如果当前用户的附属组包含root组,则无需输入组密码,直接切换
15)gpasswd
gpasswd jack #创建jack组密码
gpasswd -a wang jack #将wang用户添加至jack组里
16)groups
groups jack #查看用户jack所属的组列表
2. android系统如何通过$ adb 来获得/data/data目录的访问权限
android 是linux内核 /data/data 是root用户的目录,普通用户是无法访问的,如果你需要访问,那么你的手亏衡机需要获取root权限。
Root权限的获取方式:
1.用手机连接电脑,下载一键root工具。
2.下载成功后,打开一键ROOT软件。会出现root准备,点击下一步,正式开始root。
3.检查root条件,要是你需要文件备份的话,一定要备份后。点击开始ROOT。
3.root正式开始,需要几钟左右时间,期间可能会重启数次,root就会完成。
4.root完成后,你就可以随意删除你手机中的垃圾应用了包括系统应用。
当你获取root权限后通过adb访问 /data/data目录:
adb shell 进入shell模式
su 切换到root用户
chmod 777 /data/data 修改/data/data目录的权限为 777即可
exit 退出root用户
cd /data/data 即可进入/data/data 目录闭迟了
首先你要以管理员身份登陆vista系统;
其次,来到c盘里的windows文件夹,进入到system32文件夹里,找到cmd.exe文件;
在cmd.exe文件上单击鼠标右键,选择“以管理员身份运行”;
命令提示符运行之后,输入: users Administrator /active:yes ;
执行后会激活你所在的Vista系统的超级管理员帐户,并且不受UAC控制获得最高权限
第一、禁止简单文件共享:
首先打开一个文件夹,在菜单栏的“工具”,“文件夹选项”,“查看”的选项卡,在高级设置里,去掉“使用简单文件共享(推荐)”,如下图:
光是这样并不能启动高级文件共享,这只是禁用了简单文件共享,还必须启用帐户,设置权限,才能达到限制访问的问题。
第二,设置帐户
进入控制面板的用户帐户,有计算机的帐户和来宾帐户。仅仅是开启GUEST帐户并不能达到多用户不同权限的目的。而且在高级文件共享中,Windows XP默认是不允许网络用户通过没有密码的账号访问系统。所以,我们必须为不同权限的用户设置不同的帐户。
假如网络其他用户的访问权限都一样(大多数情况都是这样),我们只需设置一个用户就行了。在用户帐户里,新建一个用户,由于我们必须考虑网络安全性,以所设用户必须为最小的权限和最少的服务,类型设置为“受限制用户”。如上图的AAA用户。
在默认的情况下,xp新建帐户是没有密码的,上面说过,默认情况下xp是不允许网络用户通过没有密码的帐户访问的。所以,我们必须给刚刚添加的AAA用户填上密码。
添加用户也可以这样进行:打开 控制面板,“管理工具”,“计算机管理”,“系统工具”,“本地用户和组”,“用户”,在右边的窗口,按右键新建用户,如下图:
如果你希望网络用户通轿空李过此帐户访问系统而不需要密码,需要更改xp的安全策略:
打开控制面板,“管理工具”,“本地安全策略”,展开“本地策略-安全选项”,双击“账户: 使用空白密码的本地账户只允许进行控制台登录”,并停用它,然后确定。如下图:
注意:在Home版的Windows XP里是没有组策略的。
第三、设置共享
做好以上的设置就可以设置共享了,点击一个文件夹,属性,共享选项卡,嘿嘿,跟刚刚的不同了吧,下面还多了个权限的按钮。如下图:
点击权限,默认是EVERYONE,也就是每个用户都有完全控制的权限如下图:
其中(BIGEASTAAA)表示计算机bigeast中的AAA用户。
如果我们设置AAA有只读权限,只需要在“读取”那里打勾就行了。
权限的说明:
读取权限允许用户:浏览或执行文件夹中的文件。
更改权限允许用户:改变文件内容或删除文件。
完全控制权限允许用户:完全访问共享文件夹。
如果设置不同的帐户不同权限,重新一次以上步骤。
特别注意,打开了高级共享,系统的所有分区都被默认共享出来,必须把它改回来。
如果网络用户的操作系统是NT/2000/XP的话,访问时候提示用户密码,只要输入刚刚设置好的帐户密码就可以正常访问了。否则无法访问。
如何设置IIS网站目录的访问权限_网络经验:
:jingyan../article/67508eb42673ad9a1ce4fa.
打开网站根目录的“属性”窗体,然后切换到“安全”选项框
在“安全”选项框中,有该目录权限的组或用户,以及对应的权限。
点击“编辑”按钮,在打开的“权限”对话框中,再点击“添加”按钮,依次添加匿名用户IUSR和和用户组IIS_IUSRS
对于网站的根目录,通常只需要赋予“读取”,“列出文件夹内容”和“读取和执行”的权限。
如果在网站下某些文件或目录需要写入权限,则单独在这些文件或目录的IUSR和IIS_USRS权限上添加“写入”
通过这种方式完成网站的访问权限设置,之前碰到的问题就迎刃而解。
打开网站根目录的“属性”窗体,然后切换到“安全”选项框 在“安全”选项框中,有该目录权限的组或用户,以及对应的权限。 点击“编辑”按钮,在打开的“权限”对话框中,再点击“添加”按钮,依次添加匿名用户IUSR和和用户组IIS_IUSRS 对于网站的根目录
你点击网址 然后点击右键 权限 然后在安全里面设置啊 比如iisuser adminsitrator 等等
当我们想要将一个目录设置为ftp只读或ftp只写时,我们可以借助/etc/ftpaess.ctl文件来实现这种权限控制。
一、设置一个目录为ftp只读
1. 编辑/etc/ftpaess.ctl,加入如下一行:
readonly: /test
2. ftp连接服务器进行读取传输,成功
HA_node2@/> ftp 172.16.18.13
Connected to 172.16.18.13.
220 DumpServer FTP server (Version 4.2 Fri Feb 3 22:13:23 CST 2006) ready.
Name (172.16.18.13:root): root
331 Password required for root.
Password:
230-Last unsuessful login: Tue May 13 08:44:37 2008 on /dev/pts/1 from 9.181.50.139
230-Last login: Tue May 13 10:45:06 2008 on ftp from ::ffff:9.181.50.246
230 User root logged in.
ftp> cd /test
250 CWD mand suessful.
ftp> lcd /test
Local directory now /test
ftp> dir
200 PORT mand suessful.
150 Opening data connection for /bin/ls.
total 29472
-rw-r--r-- 1 root system 7539356 Apr 24 19:42 trace.r
-rw-rw-rw- 1 root system 880640 Apr 24 19:41 trace.raw
-rw-rw-rw- 1 root system 1158232 Apr 24 19:41 trace.raw-0
-rw-rw-rw- 1 root system 1059928 Apr 24 19:41 trace.raw-2
-rw-rw-rw- 1 root system 1050952 Apr 24 19:41 trace.raw-3
-rw-rw-rw- 1 root system 1195440 Apr 24 19:41 trace.raw-4
-rw-rw-rw- 1 root system 2196288 Apr 24 19:41 trace.raw-5
226 Transfer plete.
ftp> bin
200 Type set to I.
ftp> get trace.raw
200 PORT mand suessful.
150 Opening data connection for trace.raw (880640 bytes).
226 Transfer plete.
880852 bytes received in 0.08342 seconds (1.031e+04 Kbytes/s)
local: trace.raw remote: trace.raw
3.进行写入传输,则遭遇报错
ftp> bin
200 Type set to I.
ftp> put trace.raw-1
200 PORT mand suessful.
550 Write aess denied
二、设置一个目录为ftp只写
1. 编辑/etc/ftpaess.ctl,加入如下一行:
writeonly: /test
2. ftp连接服务器进行读取传输,则遭遇报错
HA_node2@/> ftp 172.16.18.13
Connected to 172.16.18.13.
220 DumpServer FTP server (Version 4.2 Fri Feb 3 22:13:23 CST 2006) ready.
Name (172.16.18.13:root): root
331 Password required for root.
Password:
230-Last unsuessful login: Tue May 13 08:44:37 2008 on /dev/pts/1 from 9.181.50.139
230-Last login: Tue May 13 15:45:37 2008 on ftp from ::ffff:172.16.18.11
230 User root logged in.
ftp> cd /test
250 CWD mand suessful.
ftp> lcd /test
Local directory now /test
ftp> dir
200 PORT mand suessful.
150 Opening data connection for /bin/ls.
total 29472
-rw-r--r-- 1 root system 7539356 Apr 24 19:42 trace.r
-rw-rw-rw- 1 root system 880640 Apr 24 19:41 trace.raw
-rw-rw-rw- 1 root system 1158232 Apr 24 19:41 trace.raw-0
-rw-rw-rw- 1 root system 1059928 Apr 24 19:41 trace.raw-2
-rw-rw-rw- 1 root system 1050952 Apr 24 19:41 trace.raw-3
-rw-rw-rw- 1 root system 1195440 Apr 24 19:41 trace.raw-4
-rw-rw-rw- 1 root system 2196288 Apr 24 19:41 trace.raw-5
226 Transfer plete.
ftp> bin
200 Type set to I.
ftp> get trace.raw-2
200 PORT mand suessful.
550 Read aess denied
3.进行写入传输,成功
ftp> bin
200 Type set to I.
ftp> put trace.raw-1
200 PORT mand suessful.
150 Opening data connection for trace.raw-1.
226 Transfer plete.
880640 bytes sent in 0.07938 seconds (1.083e+04 Kbytes/s)
local: trace.raw-1 remote: trace.raw-1
ftp> dir
200 PORT mand suessful.
150 Opening data connection for /bin/ls.
total 31192
-rw-r--r-- 1 root system 7539356 Apr 24 19:42 trace.r
-rw-rw-rw- 1 root system 880640 Apr 24 19:41 trace.raw
-rw-rw-rw- 1 root system 1158232 Apr 24 19:41 trace.raw-0
-rw-r----- 1 root system 880640 May 13 15:53 trace.raw-1
-rw-rw-rw- 1 root system 1059928 Apr 24 19:41 trace.raw-2
-rw-rw-rw- 1 root system 1050952 Apr 24 19:41 trace.raw-3
-rw-rw-rw- 1 root system 1195440 Apr 24 19:41 trace.raw-4
-rw-rw-rw- 1 root system 2196288 Apr 24 19:41 trace.raw-5
226 Transfer plete.
xp只能给用户具体设置访问权限,没有用密码访问的方式,设置权限只要在文件夹上点右键选“属性”在打开的对话框中点“安全”其下可以添加删除用户对文件的权限(当然要另外建一个用户),如果楼主硬要对用户用密码访问的话,可以用“文件夹加密大师”等软件实现。
不是,/tmp目录的权限位是drwxrwxrwt,/tmp目录对所有用户的读写权限仅限于目录本身,而不是/tmp目录下的目录或者文件。
你举的例子中,1.txt上传后的所属应该是 root root,sam用户能否复制或者删除1.txt取决于1.txt的权限位。
3. 关于linux用户和用户组权限的问题,文件读写权限的问题
Linux下权限有三种,用户权限,组权限,其他用户。
可以使用ls -l filename 会列出改文件的权限。
分别用rwx表示读,写和可执行三种权限,
对于文件:
r:可读,可以使用类似cat等命令查看文件内容;
w:可写,可以编辑或删除此文件;
x:可执行,eXecutable,可以命令提示符下当做命令提交给内核运行
对于目录:
r:可以对此目录执行ls以列出内部的所有文件;
w:可以在此目录创建文件;
x:可以使用cd切换进次目录,也可以使用ls -l查看文件的详细内容。
一个文件从左至右依次用这三个符合表示上面所说相对应的权限。
比如一个文件权限像这样-rwx-rw-r--代表用户有读,写和可执行,组有读和写权限,其他用户有读权限。
第一个-代表该文件的类型,比如是目录的话会显示d,软链接的话会显示l,和权限无关。
可以使用chmod filename 改变文件的权限。
可以使用chown filename 改变文件所属的用户和组。