我有这个脚本
# 检查丢失+找到的文件夹 函数 chklnf { #DOC echo“chklnf - 列出已安装设备上丢失+找到的文件夹中的所有文件” x =“丢失+找到/” if [ "$EUID" != 0 ] ;那么 echo "请输入 sudoers 密码以允许访问 $x 文件夹。" 须藤回声“谢谢你……” 菲 for p in $(mount | sed -nre 's,^/dev/.+ on ([^ ]+).*$,\1,p') 做 如果 [ -d "$p/$x" ] ;那么 echo -n "--- $p/$x --- " 须藤 ls -l "$p/$x" 菲 完毕 }
我想在 .bash_profile 末尾运行一次,但是;
对于每个新的 shell 提示符都必须输入 passwd,这很不方便。
那么:是否有可能“摆脱”其中的“ls -l”?
或者:
如何检测“sudo 模式”是否已经存在?(参考:脚本中的“$EUID”)
剪切 function-def 后,保存为文件 /home/hannu/bin/checklostfound,并添加最后一行 /etc/sudoers (如下所示)
$ sudo cat /etc/sudoers [sudo] hannu 的密码:**************** # # 该文件必须以 root 身份使用“visudo”命令进行编辑。 #... {剪}
# 特殊的单一脚本 hannu ALL=(root) NOPASSWD: /home/hannu/bin/checklostfound
$ ls -l /home/hannu/bin/checklostfound -rwx------ 1 hannu hannu 526 九月 24 16:30 /home/hannu/bin/checklostfound
$ sudo ~/bin/checklostfound --- //丢失+找到/ --- 总计 0
$
最后,对 $p 进行调整,/
最后有一个:
$ 猫 /home/hannu/bin/checklostfound #!/bin/env bash # 检查丢失+找到的文件夹 #DOC echo“chklnf - 列出已安装设备上丢失+找到的文件夹中的所有文件” x =“丢失+找到/” if [ "$EUID" != 0 ] ;那么 echo "请输入 sudoers 密码以允许访问 $x 文件夹。" 须藤回声“谢谢你……” 菲 for p in $(mount | sed -nre 's,^/dev/.+ on ([^ ]+).*$,\1,p') 做 九月=“/” if [ "${p: -1}" = "/" ]; 然后九月=“”;菲 如果 [ -d "$p$sep$x" ] ;那么 echo -n "--- $p$sep$x --- " sudo ls -l "$p$sep$x" 菲 完毕 $ sudo /home/hannu/bin/checklostfound -- /丢失+找到/ --- 总计 0 --- /media/hannu/Data8/lost+found/ --- 总计 0 $ /home/hannu/bin/checklostfound 请输入 sudoers 密码以允许访问lost+found/文件夹。 [sudo] hannu 的密码: 谢谢... --- /丢失+找到/ --- 总计 0 --- /media/hannu/Data8/lost+found/ --- 总计 0 $