base on Utility to execute a command as another user ## The sudo philosophy
Sudo is a program designed to allow a sysadmin to give limited root privileges
to users and log root activity. The basic philosophy is to give as few
privileges as possible but still allow people to get their work done.
## Where to find sudo
Before building sudo, make sure you have the current version. The
latest sudo may always be gotten via anonymous ftp from ftp.sudo.ws
in the directory /pub/sudo/ or from the sudo web site, https://www.sudo.ws/
The distribution is sudo-M.m.tar.gz where _M_ is the major version
number and _m_ is the minor version number. Beta versions of sudo may
also be available. If you join the _sudo-workers_ mailing list you
will get the beta announcements (see the Mailing lists section below).
## What's new
See the NEWS file for a list of major changes in this release. For
a complete list of changes, see the [ChangeLog](ChangeLog).
For a summary of major changes to the current stable release, see
https://www.sudo.ws/releases/stable/.
If you are upgrading from an earlier version of Sudo, read
[docs/UPGRADE.md](docs/UPGRADE.md) for information on changes in
behavior that may affect you.
For a history of sudo see [docs/HISTORY.md](docs/HISTORY.md).
You can find a list of contributors to sudo in
[docs/CONTRIBUTORS.md](docs/CONTRIBUTORS.md).
## Building the release
Read the installation guide, [INSTALL.md](INSTALL.md), before trying
to build sudo. Pay special attention to the "OS dependent notes" section.
## How to contribute
See [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md) for information on
how you can help contribute to sudo.
## Copyright
Sudo is distributed under an ISC-style license.
Refer to [LICENSE.md](LICENSE.md) for details.
## Mailing lists
#### sudo-announce
This list receives announcements whenever a new version of sudo is
released. https://www.sudo.ws/mailman/listinfo/sudo-announce
#### sudo-blog
This list receives a message when a new sudo blog article is
available. https://www.sudo.ws/mailman/listinfo/sudo-blog
#### sudo-commits
This list receives a message for each commit made to the sudo source
repository. https://www.sudo.ws/mailman/listinfo/sudo-commits
#### sudo-users
This list is for questions and general discussion about sudo.
https://www.sudo.ws/mailman/listinfo/sudo-users
#### sudo-workers
This list is for people working on and porting sudo.
https://www.sudo.ws/mailman/listinfo/sudo-workers
To subscribe to a list, visit its url (listed above) and enter your
email address to subscribe. Digest versions are available but these are
fairly low traffic lists so the digest versions are not a significant win.
Mailing list archives are also available. See the mailing list web sites
for the appropriate links.
## Sudo web page
There is a sudo web page at https://www.sudo.ws/ that contains
documentation, downloads, a bug tracker, the source repo, the sudo
blog, information about beta versions and other useful info.
## Filing bug reports/issues
If you believe you have found a bug, you can either file a bug
report in the sudo bug database, https://bugzilla.sudo.ws/, or open
a [GitHub issue](https://github.com/sudo-project/sudo/issues),
whichever you find easier. If you would prefer to use email,
messages may be sent to the [
[email protected] mailing
list](https://www.sudo.ws/mailman/listinfo/sudo-workers) (public)
or to
[email protected] (private).
For sudo's security policy and how to report security issues, see
[docs/SECURITY.md](docs/SECURITY.md).
Please check [docs/TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md)
*before* submitting a bug report. When reporting bugs, be sure to
include the version of sudo you are using, the operating system
and/or distro that is affected, and, if possible, step-by-step
instructions to reproduce the problem.
", Assign "at most 3 tags" to the expected json: {"id":"4670","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"