web-dev-qa-db-ja.com

ユーザーがログインできる時間を制限する

Ubuntu 12.04上に構築されたいくつかのBackbox 3.13システムがあります。私のティーンエイジャーの一人は、「睡眠」と呼ばれるこのことの概念を理解しておらず、コンピューターで遊ぶために立ち上がる傾向があります。私はその行動を制限しようとしています。私たちは数日間働いたナニーを試しました。その後、設定がまだ適切であったとしても、それはまだその十代が彼女のユーザーアカウントとインターネットにアクセスすることを可能にしていました。

調査の結果、/etc/security/time.confを変更してみることにしました。どうやら、ファイルにどのコマンドを入力しても、彼女のユーザーアカウントにログインできるため、正しく実行されていないようです。彼女に9 PMから午前6時までのアクセスを許可したくない。それでも、常にコンピューターにアクセスできる必要がある。私が試した構文は次のとおりである。

1. login;*;username;A12100-0600
2. login;*;username;!A12100-0600
3. login;*;username;!A12100-0600
   login;*;my username;A10000-2400
4. login;*;!username;A12100-0600

私はこれを行う方法を理解しようとして、ここで気が狂います。私が見逃している、または間違って入力しているのは簡単なことだと思います。任意の支援をいただければ幸いです。

9
user81117

1. /etc/pam.d/common-authを編集して、次の行を追加します。account required pam_time.so

2. /etc/security/time.confを編集して、制限を追加します:*;*;username;Al0800-2200

この例では、毎日午前8時から午後10時までの間、毎日、pam対応ソフトウェアを使用してログインできます。

1
Ingmar

あなたがしているのはここだけですか、それともLsの代わりに使用していますか?

時間制限は、「大文字A、小L」、次に時間と読む必要があります...

0
Jan

私のために次の作品:

*;*;child1|child2|child3;Wk0445-1958|Sa0445-2300|Su0445-1958

/etc/pam.d/common-accountの次の行は、私が追加またはコメント解除したものである可能性があります。

account required  pam_time.so

私はまた、8:00にチェックするcronジョブを持っていますPM子の1人がログインしているかどうかをチェックし、ログインしている場合はログオフします...実際にログオフする部分は続く:

echo 'logging off - Following children are still logged in...'
for n in $active_children ; do echo "  " $n ; done
festival --tts <<EOT
Is is bedtime. Good bye and good night.
EOT
for n in $active_children
do
    killall -HUP -u $n
done
sleep 15
for n in $active_children
do
    killall      -u $n
done
echo "[`date`] - done"
0
david

より一般的な方法は、cronを使用してアカウントをロックおよびロック解除することです。これにより、ウィンドウマネージャーに固有の要件と、ウィンドウマネージャーに関連する変数の両方が排除されます。これは、スタンドアロンのマシンにのみ適用されることを意図しており、中央の認証サーバーに接続されたデスクトップ/ラップトップ/タブレットではありません。

0 21 * * * /usr/bin/passwd -l childsUserName 0 6 * * * /usr/bin/passwd -u childsUserName'

注:「passwd」コマンドのパスを調整する必要がある場合があります。 'which'を使用して適切なパスを決定します。

私のCentOS6ボックス:

which passwd

/usr/bin/passwd

0
Ragansi