我从挂载和 Linux 文件系统概念开始。就像一个简单的测试一样,我已经从我的服务器(VM)安装了一个共享到客户端(VM)。一切都很好,它已安装,我可以像在本地文件系统上一样处理它。
然后我尝试从我的物理机安装共享到我的客户端(VM),事情也很顺利。但我被困住的地方是当我看到我所安装的股票的颜色时。从虚拟机挂载到虚拟机的共享是绿色的,而我从物理挂载到虚拟机的共享看起来像一个普通目录。我在安装时没有使用任何特殊的选项开关。我想知道安装时颜色的问题是什么,有人能解释一下吗?[我的发行版是 debian]
正如您所看到的,173_VM 是从虚拟机安装的文件共享,接下来是从物理机安装的文件共享。 VM 呈绿色。
答案1
答案2
在这种情况下,由于在目录上设置了“粘性位”,因此显示绿色。这由权限中的“t”表示(请注意,另一个没有 t)。
这实质上只是意味着该目录可由系统上的所有用户写入,但只有其中文件的所有者可以删除/重命名它以防止意外破坏。
有关粘性位的更多深入信息这里是一个全面的解释。
答案3
首先,输出中的颜色ls
是可配置的(通过环境变量LS_COLORS
,请参阅这个关于 ls 着色的答案)。现在,图中的绿色173_VM
是由于粘性位t
您可以在第一个字段右侧看到设置。
尝试这个:
ls -ld /tmp
如果您没有干预LS_COLORS
(或 的权限/tmp
),那么/tmp
也应该显示为绿色。
同样地:
mkdir -m 1777 xyz
ls -ld xyz
不管怎样,奇怪的权限让我震惊:--S--Srwt
八进制 7007,这完全没有意义。
答案4
的颜色
ls
可以代表权限,有些系统默认是以绿色背景显示每个人都有写权限的目录:
您可以更改默认颜色,如下所示:
导出目录颜色数据库:
dircolors --print-database > ~/.mydircolors
使用您最喜欢的编辑器 ( ) 打开它nano ~/.mydircolors
,根据需要修改或添加缺少的文件扩展名,然后打开您的.bashrc
:
注释掉下面几行,得到:
# You may uncomment the following lines if you want `ls' to be colorized:
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias l='ls $LS_OPTIONS -lA'
将 eval " dircolors
" 修改为:
eval "`dircolors ~/.mydircolors`"
保存并退出。