【www.jsxqjc.com--操作系统】
以下是小编整理的unix/linux中显示文件权限代码linux操作系统集合3篇,仅供参考,希望能够帮助到大家。
unix/linux中显示文件权限代码linux操作系统篇1
本文章来总结关于如何在unix/linux中显示文件权限代码,有需要的朋友可参考参考,
代码如下复制代码// 说明:用 unix/linux 格式显示文件权限
// 整理:
$perms = fileperms("/etc/passwd" );
if (($perms & 0xC000) == 0xC000) {
// Socket
$info = "s";
} elseif (( $perms & 0xA000) == 0xA000) {
// Symbolic Link
$info = "l";
} elseif (($perms & 0x8000 ) == 0x8000) {
// Regular
$info = "-";
} elseif (( $perms & 0x6000) == 0x6000) {
// Block special
$info = "b";
} elseif (($perms & 0x4000 ) == 0x4000) {
// Directory
$info = "d";
} elseif (( $perms & 0x) == 0x2000) {
// Character special
$info = "c";
} elseif (($perms & 0x1000 ) == 0x1000) {
// FIFO pipe
$info = "p";
} else {
// Unknown
$info = "u";
}
// Owner
$info .= (($perms & 0x0100) ? "r" : "-");
$info .= (($perms & 0x0080) ? "w" : "-");
$info .= (($perms & 0x0040) ?
(($perms & 0x0800) ? "s" : "x" ) :
(($perms & 0x0800) ? "S" : "-"));
// Group
$info .= (( $perms & 0x0020) ? "r" : "-");
$info .= (($perms & 0x0010) ? "w" : "-");
$info .= (($perms & 0x0008) ?
(($perms & 0x0400) ? "s" : "x" ) :
(($perms & 0x0400) ? "S" : "-"));
// World
$info .= (( $perms & 0x0004) ? "r" : "-");
$info .= (($perms & 0x0002) ? "w" : "-");
$info .= (($perms & 0x0001) ?
(($perms & 0x0200) ? "t" : "x" ) :
(($perms & 0x0200) ? "T" : "-"));
echo $info;
?>
摘录自 User manager for PureFTPd 的权限显示函数
PureFTPd 是 *nix 下的一个 FTP 服务器软件,而User manager for PureFTPd 则是为了方便在线管理 ftp 用户设计制作的。作者是:M.Mastenbroek,
代码如下复制代码// 说明:摘录自 User manager for PureFTPd 的权限显示函数
// 整理:
function DisplayFilePermissions($Mode) {
// Determine Type
if ($Mode & 0x1000) {
$Type = "p"; // FIFO pipe
} else if ($Mode & 0x2000) {
$Type = "c"; // Character special
} else if ($Mode & 0x4000) {
$Type = "d"; // Directory
} else if ($Mode & 0x6000) {
$Type = "b"; // Block special
} else if ($Mode & 0x8000) {
$Type = "-"; // Regular
} else if ($Mode & 0xA000) {
$Type = "l"; // Symbolic Link
} else if ($Mode & 0xC000) {
$Type = "s"; // Socket
} else {
$Type = "u"; // UNKNOWN
}
// Determine permissions
$Owner["read"] = ($Mode & 00400) ? "r" : "-";
$Owner["write"] = ($Mode & 00200) ? "w" : "-";
$Owner["execute"] = ($Mode & 00100) ? "x" : "-";
$Group["read"] = ($Mode & 00040) ? "r" : "-";
$Group["write"] = ($Mode & 00020) ? "w" : "-";
$Group["execute"] = ($Mode & 00010) ? "x" : "-";
$World["read"] = ($Mode & 00004) ? "r" : "-";
$World["write"] = ($Mode & 00002) ? "w" : "-";
$World["execute"] = ($Mode & 00001) ? "x" : "-";
// Adjust for SUID, SGID and sticky bit
if ($Mode & 0x800) $Owner["execute"] = ($Owner["execute"] == "x") ? "s" : "S";
if ($Mode & 0x400) $Group["execute"] = ($Group["execute"] == "x") ? "s" : "S";
if ($Mode & 0x200) $World["execute"] = ($World["execute"] == "x") ? "t" : "T";
return
$Type
. $Owner["read"] . $Owner["write"] . $Owner["execute"]
. $Group["read"] . $Group["write"] . $Group["execute"]
. $World["read"] . $World["write"] . $World["execute"];
}
$perms = fileperms( "/etc/passwd" );
echo DisplayFilePermissions($perms);
?>
unix/linux中显示文件权限代码linux操作系统篇2
本文章来给大家介绍在linux下SVN中改变执行权限方法总结,本地文件在commit到仓库之前若没有chmod +x 权限的话,那在svn仓库里的文件将会保持当前无可执行属性状态,我们可以做svn命令来修改,
SVN中,如果我们在linux下提交权限为755的文件,就会在svn的属性中存在一个svn:excuteable。
只在本地chmod 644 filename.php,是不能造成修改的。
可以在windows下的svn客户端中,通过修改该文件的属性,Remove掉它的这个可执行属性,
Remove之后会重新进行一次commit操作,所以还会弹出让你填写一点备注的输入框。
所以可以看出,svn中保存文件并没有储存属主和类似755这样的权限,只在如果有可执行权限时,checkout和update时为文件chmod +x。
本地文件在commit到仓库之前若没有chmod +x 权限的话,那在svn仓库里的文件将会保持当前无可执行属性状态。
即使在本地chmod +x filename 之后,再提交到仓库也是没有用的。check out到其他目录的时候,文件仍然没有可执行权限。
需要使用svn 设置文件属性,如下
svn propset svn:executable on *
然后 svn commit
unix/linux中显示文件权限代码linux操作系统篇3
vsftpd服务器是linux中一个非常实用的文件上传管理工具了,下面我就来给大家介绍在vps中关于vsftpd配置与权限分配方法,希望例子对大家会有所帮助,
先确认下安装上了没,可以使用
代码如下复制代码[root@localhost sv005-mongodb]# service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
或者使用命令
[root@localhost sv005-mongodb]# chkconfig --list vsftpd
vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
如果没有安装我们需要先是需要安装:
代码如下复制代码yum install vsftpd
然后启动vsftpd : /etc/init.d/vsftpd start
vi /etc/vsftpd/vsftpd.conf 修改里面的 这两项:
chroot_local_user=YES (须添加)
chroot_list_enable=NO
然后 保存即可!
创建用户组:
groupadd 用户组
useradd -g webusers -d /路径 用户名
passwd 用户名 修改用户的密码。
chown -R 用户名:用户组 /路径/
刚才由于修改了配置文件 所以要记得重启:service vsftpd restart
OK ! 成功了!
到上面就完成了,如果你还需要加一些虚拟用户,我们可向下看
vsFTPD配置虚拟用户
FTP用户一般是不能登录系统的,这也是为了安全。在系统中,没有权限登录系统的用户一般也被称之为虚拟用户;虚拟用户也是要写进 /etc/passwd中;这只是一种虚拟用户的方法,但说实在的并不是真正的虚拟用户,只是把他登录SHELL的权限去掉了,所以他没有能力登录系统;如果我们想把beinan这个用户目录定位在/opt/beinan这个目录中,并且不能登录系统;我们应该如下操作。
代码如下复制代码[root@localhost ~]# adduser -d /opt/beinan -g ftp -s /sbin/nologin beinan[root@localhost ~]# passwd beinan
Changing password for user beinan.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]#
其实这还是不够的,还要改一下配置文件vsftpd.conf ,以确保本地虚拟用户能有读写权限;
local_enable=YES
write_enable=YES
local_umask=022
如何实现虚拟路径?
比如:
代码如下复制代码/home/a 映射为 ftp://localhost/a/home/b/c 则为 ftp://localhost/c
可以通过如下的方法来实现,
[root@localhost ~]# mount –bind [原有的目录] [新目录]
比如我的ftp的默认目录是/var/ftp,我想把/mnt/LinG/WinSoft文件夹,映射到/var/ftp目录中,我就如下操作
我们要先在/var/ftp目录中建一个目录
代码如下复制代码[root@localhost ~]# mkdir /var/ftp/WinSoft然后执行mount命令
[root@localhost ~]# mount –bind /mnt/LinG/WinSoft /var/ftp/WinSoft
这样就OK了。
打开Linux vsFTPDv服务器的日志功能
把下面xferlog_file前面的#号对掉,也就是把vsftp的log功能打开,这样我们就能在/var/log目录下查看vsftpd.log。这是vsFTP的日志功能,这对于我们来说是极为重要的。xferlog_file=/var/log/vsftpd.log如何让vsFTP服务器限制链接数,以及每个IP最大的链接数?应该改Linux vsFTPD服务器的配制文件vsftpd.conf,加入下面的两行:
max_clients=数字
max_per_ip=数字
举例:我想让我的vsFTP最大支持链接数为100个,每个IP,最多能支持5个链接,所以我应该在vsftpd.conf中加上如下的两行:
max_clients=100
max_per_ip=5
如何限制传输速度?
anon_max_rate=数字
注:这是匿名的速度
local_max_rate=数字
注:这是vsFTP服务器上本地用户的速度
注:这个数字的单位是byte,所以我们要计算一下。
比如我想让匿名用户和vsFTP上的用户都以80KB下载,所以这个数字应该是1024×80=81920
所以我们要在vsftpd.conf中加入下面的两行
anon_max_rate=81920
local_max_rate=81920
下面是一些常用的命令:
管理用户组(group)的工具或命令;
groupadd 注:添加用户组;
groupdel 注:删除用户组;
groupmod 注:修改用户组信息
groups 注:显示用户所属的用户组
用户管理命令
useradd 注:添加用户
userdel 注 :删除用户
adduser 注:添加用户
passwd 注:为用户设置密码
usermod 注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;