sync
This commit is contained in:
103
TODO
103
TODO
@@ -18,145 +18,140 @@ TODO list (most will be addressed in sudo 2.0)
|
|||||||
after doing the stat to guard against spoofing. This should avoid
|
after doing the stat to guard against spoofing. This should avoid
|
||||||
the race condition caused by going through namei() twice...
|
the race condition caused by going through namei() twice...
|
||||||
|
|
||||||
08) Make runas_user a struct "runas" with user and group components.
|
08) Should be able to mix Cmnd_Alias's and command args. Ie:
|
||||||
(maybe uid and gid too???)
|
|
||||||
|
|
||||||
09) Should be able to mix Cmnd_Alias's and command args. Ie:
|
|
||||||
pete ALL=PASSWD [A-z]*,!PASSWD root
|
pete ALL=PASSWD [A-z]*,!PASSWD root
|
||||||
where PASSWD was defined to be /usr/bin/passwd.
|
where PASSWD was defined to be /usr/bin/passwd.
|
||||||
This requires the arg parsing to happen in the yacc grammer.
|
This requires the arg parsing to happen in the yacc grammer.
|
||||||
At the very least, commands and args have to become separate
|
At the very least, commands and args have to become separate
|
||||||
tokens in the lexer.
|
tokens in the lexer.
|
||||||
|
|
||||||
10) Add a per-tty restriction? Ie: only can run foo from /dev/console.
|
09) Add a per-tty restriction? Ie: only can run foo from /dev/console.
|
||||||
|
|
||||||
11) Add test for how to read ether interfaces in configure script
|
10) Add test for how to read ether interfaces in configure script
|
||||||
|
|
||||||
12) Use strtol() and strtoul(), not atoi()
|
11) Use strtol() and strtoul(), not atoi()
|
||||||
|
|
||||||
13) Implement date_format and log_format options.
|
12) Implement date_format and log_format options.
|
||||||
|
|
||||||
14) Add support for: Default:user@host
|
13) Add support for: Default:user@host
|
||||||
|
|
||||||
15) Some people want to be able to specify a special password in sudoers
|
14) Some people want to be able to specify a special password in sudoers
|
||||||
in addition or instead of the normal one. The best argument for
|
in addition or instead of the normal one. The best argument for
|
||||||
this so far is to be able to use separate passwords for the
|
this so far is to be able to use separate passwords for the
|
||||||
target users that are not the passwd file ones.
|
target users that are not the passwd file ones.
|
||||||
|
|
||||||
16) Add support for trusted users. E.g. allow user to run a certain
|
15) Add support for trusted users. E.g. allow user to run a certain
|
||||||
command regardless of what dir it is in if it is owned by the
|
command regardless of what dir it is in if it is owned by the
|
||||||
trusted user.
|
trusted user.
|
||||||
|
|
||||||
17) Add a flag similar to '-l' but that spits out sudo commands in
|
16) Add a flag similar to '-l' but that spits out sudo commands in
|
||||||
a format suitable for cut & paste into sudoers.
|
a format suitable for cut & paste into sudoers.
|
||||||
|
|
||||||
18) Someone wants a recursive version of the dir specifier. Ie:
|
17) Someone wants a recursive version of the dir specifier. Ie:
|
||||||
SOME_MODIFIER:/usr/local/ to allow anything under /usr/local to be run.
|
SOME_MODIFIER:/usr/local/ to allow anything under /usr/local to be run.
|
||||||
|
|
||||||
19) An option to set the shell to the target user would make sense.
|
18) An option to set the shell to the target user would make sense.
|
||||||
See other target user-related issues above.
|
See other target user-related issues above.
|
||||||
|
|
||||||
20) Add an option (-D) to dump the defaults after the sudoers file
|
19) Add an option (-D) to dump the defaults after the sudoers file
|
||||||
has been parsed. Should only be available to root and should
|
has been parsed. Should only be available to root and should
|
||||||
allow a -u user modifier. Maybe dump all of sudoers?
|
allow a -u user modifier. Maybe dump all of sudoers?
|
||||||
|
|
||||||
21) Allow /etc/sudoers to be a symlink but require the parent dir to
|
20) Allow /etc/sudoers to be a symlink but require the parent dir to
|
||||||
be root-owned and not writable by anything else. Should really
|
be root-owned and not writable by anything else. Should really
|
||||||
traverse the tree to the root doing this.
|
traverse the tree to the root doing this.
|
||||||
|
|
||||||
22) Improve interfaces.c STREAMS code (see ntpd's ntp_io.c for hints)
|
21) Improve interfaces.c STREAMS code (see ntpd's ntp_io.c for hints)
|
||||||
|
|
||||||
23) Wildcard support for user and group names? (netgroup too?)
|
22) Wildcard support for user and group names? (netgroup too?)
|
||||||
|
|
||||||
24) If root_sudo is off, still allow sudo -u to non-root users?
|
23) If root_sudo is off, still allow sudo -u to non-root users?
|
||||||
|
|
||||||
25) Parse gids like %#0
|
24) For AIX, use setpenv() and setpcred() if they exist
|
||||||
|
|
||||||
26) For AIX, use setpenv() and setpcred() if they exist
|
|
||||||
http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/basetrf2/setpenv.htm
|
http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/libs/basetrf2/setpenv.htm
|
||||||
http://publib16.boulder.ibm.com/pseries/en_US/libs/basetrf2/setpcred.htm
|
http://publib16.boulder.ibm.com/pseries/en_US/libs/basetrf2/setpcred.htm
|
||||||
|
|
||||||
27) Add an insult_path variable that is intialized to "builtin" but that
|
25) Add an insult_path variable that is intialized to "builtin" but that
|
||||||
can point to other files containing an insult count as the first
|
can point to other files containing an insult count as the first
|
||||||
line and that have a constant record length (sparse files) for
|
line and that have a constant record length (sparse files) for
|
||||||
easy seeking.
|
easy seeking.
|
||||||
|
|
||||||
28) Some way of using a new pty for the program run via sudo would prevent
|
26) Some way of using a new pty for the program run via sudo would prevent
|
||||||
access to the caller's /dev/tty (but probably makes job control tricky).
|
access to the caller's /dev/tty (but probably makes job control tricky).
|
||||||
|
|
||||||
29) Maybe have a database of checksums that commands are verified against.
|
27) Maybe have a database of checksums that commands are verified against.
|
||||||
Basically replace the st_ino/st_dev check with a checksum lookup.
|
Basically replace the st_ino/st_dev check with a checksum lookup.
|
||||||
|
|
||||||
30) Look into testing writability of a file via sudoedit *before* doing
|
28) Look into testing writability of a file via sudoedit *before* doing
|
||||||
the edit; e.g., try opening with O_APPEND.
|
the edit; e.g., try opening with O_APPEND.
|
||||||
|
|
||||||
31) Add Makefile.in bits to autogenerate Solaris and Irix packages
|
29) Add Makefile.in bits to autogenerate Solaris and Irix packages
|
||||||
|
|
||||||
32) Add a session mode where sudo allocates a pty and logs everything
|
30) Add a session mode where sudo allocates a pty and logs everything
|
||||||
that occurs ala script(1).
|
that occurs ala script(1).
|
||||||
|
|
||||||
33) Use pam_open_session() and pam_close_session() (requires a persistent
|
31) Use pam_open_session() and pam_close_session() (requires a persistent
|
||||||
sudo process to call pam_close_session()). Maybe add xauth support for
|
sudo process to call pam_close_session()). Maybe add xauth support for
|
||||||
the non-pam case?
|
the non-pam case?
|
||||||
|
|
||||||
34) Add substitution mechanism in sudoers to subst, e.g. editors for sudoedit
|
32) Add substitution mechanism in sudoers to subst, e.g. editors for sudoedit
|
||||||
|
|
||||||
35) Move prototypes to extern.h?
|
33) Move prototypes to extern.h?
|
||||||
|
|
||||||
36) Get rid of VALIDATE_NOT_OK and just set/clear VALIDATE_OK
|
34) Get rid of VALIDATE_NOT_OK and just set/clear VALIDATE_OK
|
||||||
|
|
||||||
37) visudo -c should also sanity check aliases
|
35) visudo -c should also sanity check aliases
|
||||||
|
|
||||||
38) Use AC_CHECK_DECLS for systems w/o proper prototypes? Maybe errno too?
|
36) Use AC_CHECK_DECLS for systems w/o proper prototypes? Maybe errno too?
|
||||||
|
|
||||||
39) Flesh out testsudoers and fix glob/opendir issues. Use custom netgroup
|
37) Flesh out testsudoers and fix glob/opendir issues. Use custom netgroup
|
||||||
code too?
|
code too?
|
||||||
|
|
||||||
40) Think some more about giving admins a way to test commands for a user
|
38) Think some more about giving admins a way to test commands for a user
|
||||||
on a specific host with a different sudoers file.
|
on a specific host with a different sudoers file.
|
||||||
|
|
||||||
41) Add nsswitch.conf parsing to LDAP support.
|
39) Add nsswitch.conf parsing to LDAP support.
|
||||||
|
|
||||||
42) Refactor duplicated code in ldap.c into wrapper functions.
|
40) Refactor duplicated code in ldap.c into wrapper functions.
|
||||||
|
|
||||||
43) Return command from command_matches() instead of setting safe_cmnd directly.
|
41) Return command from command_matches() instead of setting safe_cmnd directly.
|
||||||
|
|
||||||
44) Roll visudo into sudo ala sudoedit.
|
42) Roll visudo into sudo ala sudoedit.
|
||||||
|
|
||||||
45) Add ticket file to ticket dir in non-tty tickets case so we
|
43) Add ticket file to ticket dir in non-tty tickets case so we
|
||||||
can mix tty and non-tty ticket schemes.
|
can mix tty and non-tty ticket schemes.
|
||||||
|
|
||||||
46) Use ldap_get_values_len() instead of ldap_get_values() for
|
44) Use ldap_get_values_len() instead of ldap_get_values() for
|
||||||
OpenLDAP (what about others?)
|
OpenLDAP (what about others?)
|
||||||
|
|
||||||
47) Add support for NOEXEC w/ 64-bit AIX executables.
|
45) Add support for NOEXEC w/ 64-bit AIX executables.
|
||||||
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.xlf91a.doc/xlfug/comp64.htm
|
http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.xlf91a.doc/xlfug/comp64.htm
|
||||||
|
|
||||||
48) Revisit debian fqdn diffs.
|
46) Revisit debian fqdn diffs.
|
||||||
|
|
||||||
49) Add gettext() support. Can borrow some translations from PAM.
|
47) Add gettext() support. Can borrow some translations from PAM.
|
||||||
|
|
||||||
50) Convert the other capitalized files into .pod so we can get decent html
|
48) Convert the other capitalized files into .pod so we can get decent html
|
||||||
form them? E.g. README, etc. E.g.
|
form them? E.g. README, etc. E.g.
|
||||||
pod2text -l -i0 history.pod > HISTORY
|
pod2text -l -i0 history.pod > HISTORY
|
||||||
pod2html --noindex history.pod > history.html
|
pod2html --noindex history.pod > history.html
|
||||||
|
|
||||||
51) Use mkstemp() for visudo temp files? Also re-examine locking.
|
49) Use mkstemp() for visudo temp files? Also re-examine locking.
|
||||||
|
|
||||||
52) Add SSL support for ldap, see http://docs.sun.com/source/816-5616-10/ssl.htm#12979 and enablefor "ssl on"
|
50) Run sudo thorugh valgrind
|
||||||
|
|
||||||
53) Run sudo thorugh valgrind
|
51) Make -a and -c options in sudo.pod only visible when available.
|
||||||
|
|
||||||
54) Make -a and -c options in sudo.pod only visible when available.
|
|
||||||
Could use an nroff register combines with configure substitute magic.
|
Could use an nroff register combines with configure substitute magic.
|
||||||
Note that configure substitution runs on the .man.in file not the
|
Note that configure substitution runs on the .man.in file not the
|
||||||
.pod file.
|
.pod file.
|
||||||
|
|
||||||
55) Consolidate line wrap code.
|
52) Consolidate line wrap code.
|
||||||
|
|
||||||
56) How can we distinguish between a bare '\\' and one that is escaping
|
53) How can we distinguish between a bare '\\' and one that is escaping
|
||||||
glob chars? Right now we convert \\ -> \ in the lexer which
|
glob chars? Right now we convert \\ -> \ in the lexer which
|
||||||
causes the confusion.
|
causes the confusion.
|
||||||
|
|
||||||
57) For LDAP entries, should be able to parse the per-command options
|
54) For LDAP entries, should be able to parse the per-command options
|
||||||
since they may affect the outcome (e.g. default_runas).
|
since they may affect the outcome (e.g. default_runas).
|
||||||
|
|
||||||
|
55) Better LDAP documention. Perhaps a sudo-ldap man page.
|
||||||
|
Reference in New Issue
Block a user