ユーザーに指定されたファイルの権限を変更するように対話的に要求する方法

ユーザーに指定されたファイルの権限を変更するように対話的に要求する方法

ユーザーは、3つの権限領域のそれぞれに対して読み取り、書き込み、および/または実行を有効にするかどうかを尋ねる方法で、指定されたファイルが対話的に権限を変更できるようにするスクリプトを作成する必要があります。新しい権限を決定したら、それをファイルに適用する必要があります。

私はこれについてスクリプトを書く方法を研究するのに1時間以上費やしましたが、成功しませんでした。これは私にとって複雑すぎるようですが、これを行う方法を学びたいので、このスクリプトを正しい方向に導くことができるアドバイスに感謝します。

答え1

これを使って摘発されたら…

#!/bin/bash

# Did user supply an argument (path to folder?)
if [ "${1}" == "" ] ; then
  echo "Directory path required as argument" && exit 1
fi

# Was the arg a valid directory?
if [ ! -d "${1}" ] ; then
  echo "Directory argument was invalid" && exit 1
fi

# Re assign variable
dir="${1}"

# Get a list of files in directory
files=$(ls ${dir})

# Loop over files and ask questions
while file in "${files}" ; do

  # Prompt user for permissions to be set on user/group/owner
  read -p "Set permission for (u)ser/(g)roup/(o)wner? [u|g|o]" who

  # Prompt user for read/write/execute permission to be set
  read -p "Add read/write/execute to ${file}? [r|w|x]" ans

  # Set the specified permission for the specified account type
  chmod ${who}=${ans} ${file}

done

実際には、ファイルごとに複数のアカウントタイプの読み取り/書き込み/実行ビットを適用するループを提供する必要がありますが、遅すぎます。

関連情報