ユーザーがログインすると、昇格された権限を必要とするコマンドを実行する必要があります。そのコマンドに対してユーザーに sudo アクセス権限を与えるつもりはありません。すべてのユーザーではなく、そのユーザーに対してのみこのスクリプトを実行したいのです。
答え1
あなたのコメントから判断すると、ユーザー「fred」に通常のシェルを使用させず、ログイン時にスクリプト「foo」を実行させたいようです。Fred が「サンドボックス」から脱出しようと必死にならない限り、これは簡単に実行できます。
$ cat ~fred/.bash_login
#!/bin/bash
exec /usr/local/bin/foo
## in ubuntu each user has a group of his "own"
$ sudo chown foo:fred ~fred ~fred/.bash_login /usr/local/bin/foo
## prevent fred from altering the files and directories we care about
$ sudo chmod g-w ~fred ~fred/.bash_login /usr/local/bin/foo
## make script foo run with user foo's privileges
$ sudo chmod u+s /usr/local/bin/foo
したがって、fred はシェル プロンプトさえ表示されなくなります。これは、ログイン シェルが最初に行うことは foo に置き換えられることです。スクリプト foo が終了すると、fred はログアウトされます。Fred がこのサンドボックスから抜け出す動機を持たない理由は、多くのプログラムが従属シェルを開くことを許可しているため、fred はここで示されている貧乏人のロックアウトを取り消すことができるからです。
このメソッドを、スーパーユーザー以外の foo ではなく「root」で使用すると、root をハイジャックされる可能性があるため、そうしないでください。
答え2
(または、他のユーザーに読み取られたくない場合は 6711)を使用しchmod 6755 filename
、それを cron に配置します... これは、所有者としてこのファイルを実行する権限であるため、機能するはずです。したがって、ルートとして作成すると、次のように使用できるはずです...